The equivalent for that in threadButler would be having a while loop that goes like this: 1) Read all messages from a channel until its empty process them using an async proc that returns a future. 2) Combine all the futures into one 3) waitFor and thus block the thread for that combined Future so that all messages are processed 4) Restart at 1