Since you have exactly two branches here, it'll be best to dispatch parallel jobs to separate threads using future function. future will return you a future object (a special promise which will be automatically resolved when the job will be completed).
Here is how it will look:
(defn some-entry-point [obja objb] (let [pa (-> (fetchA obja) parseA future) pb (-> (fetchB objb) parseB future)] (-> (join @pa @pb) dump)))
@ here is a shortcut (reader macro) for deref function.
Or course, you could execute one of you branches in main thread, creating only one future object:
(defn some-entry-point [obja objb] (let [p (-> (fetchB objb) parseB future)] (-> (fetchA obja) parseA (join @p) dump)))
You could also generalize this approach to fetch and parse multiple objects using some general fetch and parse functions, using pmap for paralelization:
(defn some-entry-point "Fetch and parse multiple objects in parallel" [objs] (->> objs (pmap (comp parse fetch)) (apply join) dump))