Core async gives you ques between threads. In an abstract sense, It's a way to hand off work to different works. Think of a system where once a worker finishes a task they have to wait to hand the product off. Core asynce introduces an assembly line so the worker can put it on that and move on.