We needs queues so tasks can post messages to each other, and can be blocked until a message is received