Load Balancing

Every service on the Microbus bus — a microservice’s functional or web endpoint, an event sink, or a workflow task — is a lightweight goroutine that pulls messages off a queue. A queue is maintained for each endpoint of each microservice. Replicas of the same microservice subscribe to the same queues and consume messages as they are published. Load balancing is achieved by virtue of the bus dispatching messages from the queue to only one random consumer at a time. A separate load balancer is therefore not required.

Microbus also allows for multicast subscriptions in which all replicas receive all messages.

When using the Connector’s Subscribe method directly, multicasting are enabled via the sub.NoQueue() option.

Events are by definition multicast.