Although messages are usually delivered in the order they were sent, Errai Bus does not guarantee ordering of messages. In fact, it does not guarantee delivery either. I've noticed that a message is often dropped when a client polls the server and gets a SessionExpired response, for example.
IMO, ErraiBus should guarantee ordering, and at least notify the receiver if a message was lost in transmission. The problem with guaranteeing delivery is that you need to either impose a delivery time limit, or store undeliverable messages until the recipient comes back (possibly forever!) This could pile up fast if the server was sending broadcasts to thousands of clients and there was some sort of network outage near the server that caused all the clients to disconnect simultaneously!
Anyway, changes to the message delivery contract aren't currently in the works–my advice is to come up with your own system for detecting lost or out-of-order messages when that's important to your use case. One method would be to set a sequence number on each message, and verify it on the receiving end.
Thanks Jonathan for the clarification! Will design around this constraint.
In my opinion there are uses for both, guaranteed and not-guaranteed message delivery. Ideal would be if messages or queues could be configured for point-to-point or publish-subscribe delivery mode, like in JMS. Maybe the point-to-point mode could be put on the long-term road map, but there is no rush. The current Errai bus works very well, thank you for all the good work!