Hi Oded, I think you would have to implement your own message-routing to achieve this. Create one "output" mult for each topic, subscribe to them with `tap`, and route the messages to the channels as they arrive.
Pseudo-code: (go-loop [] (when-some [message (<! input-ch)] ;; call topic fn, get back a set of topics (doseq [topic topics] (>! topic-ch message))) This is quite similar to the go-loop in the implementation of `pub`: async.clj line 886 <https://github.com/clojure/core.async/blob/105acd5b40a66b6d1c80271a30ae273c6933c5bd/src/main/clojure/clojure/core/async.clj#L886> . –S -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.