Pubsub guarantees

This post is provide a current archive of guarantees that the internal pubsub system guarantees.

These are for the central-hub, which also includes the forwarders for the HA servers.

So… for messages published on the current machine:

  • slow consumers of messages do not block publishing
  • slow consumers do not block other consumers
  • for any given subscription, messages will arrive in the order they are published
  • subscription callback functions happen synchronously for the subscription
  • ordering of messages for different subscriptions are not guaranteed

There are some places where we want multiple subscriptions, but we do want to ensure ordering between the subscriptions. For this, use the Multiplexer. The multiplexer can then have multiple topics and callback functions, and all calls to the multiplexer are serialised.

With HA, there are events published when forwarding between servers is established, and also when forwarding between nodes is interrupted.

There is no guarantee of delivery between nodes, if the other end isn’t hooked up, the message is dropped. Consider this when relying on pubsub between servers.