Although the EventStore could potentially be used to create a full-blown queue, it was never designed with this in mind. This means that there are many stubborn decisions that have led to the creation of a library that contradicts the requirements of your question.
For example, the “exactly once” delivery concept is something that messaging systems really don't support. Other things mentioned above, such as poisonous messages, are not really a problem because the EventStore is not connected to the message pipeline this way.
The problem you are trying to solve does not seem to be where the EventStore can help you. Therefore, I would recommend evaluating a full-blown message queue such as RabbitMQ.
Besides what you have on your messages, what makes them more than 4 MB? If you click on files or large binary streams, why not drag them into some highly accessible “global” storage (like Amazon S3) and then a pointer to the messages in the message?
source share