There are two solutions to this. First is to have some kind of flow control between producers and consumers (send/wait for reply/continue). Second is to pull messages from sender whenever receiver is ready, perhaps with some rate-limiting or buffering.