As somebody who implemented a small user-space tcp long ago, I get always uneasy when people tell me they just put events into some message queue and never consider all the edge cases that can happen when either the MQ or the consuming servers choke up. The problems are pretty much the same as with TCP flow control. It is easy to build a software that only appears to be working well.