core-async

2021-03-18T17:25:33.004700Z

I'm a little confused with core.async, when you attach a transducer to a channel or when you use pipeline, where does the computation happen? And so how does the concurrency work? Normally I think of each go-block as a unit of concurrency, so if I have 4 go-block I've got 4 concurrent processes running. But with a transducer on a channel I'm a bit confused.

2021-03-18T17:26:27.005900Z

Same thing with pipeline, it has the parallelization setting, what happens under the hood? Does it create new threads or does it dispatch to the go thread pool?

alexmiller 2021-03-18T17:28:41.006500Z

the transducer may be applied by either the producer or the consumer thread of the channel (it depends)

alexmiller 2021-03-18T17:28:55.006700Z

pipeline creates its own thread pool