Publish/Subscribe Topologies — Load Balancing, Fan-out, and Log Partitions

Publish/Subscribe Topologies — Load Balancing, Fan-out, and Log Partitions An architecture diagram generated by Archify. Producer 1 · sends events · AMQP/JMS world: broker assigns messages Producer 1 sends events Producer 2 · sends events · AMQP/JMS world: broker assigns messages Producer 2 sends events JMS Broker · assigns each message · AMQP/JMS world: broker assigns messages · ack + redeliver JMS Broker assigns each message ack + redeliver Queue: orders · load balancing · AMQP/JMS world: broker assigns messages Queue: orders load balancing Topic: prices · fan-out to all · AMQP/JMS world: broker assigns messages Topic: prices fan-out to all Consumer 1 · shares the work · AMQP/JMS world: broker assigns messages Consumer 1 shares the work Consumer 2 · shares the work · AMQP/JMS world: broker assigns messages Consumer 2 shares the work Subscriber 1 · gets every message · AMQP/JMS world: broker assigns messages Subscriber 1 gets every message Subscriber 2 · gets every message · AMQP/JMS world: broker assigns messages Subscriber 2 gets every message Producer A · sends events · Log-based world: groups read partitions Producer A sends events Producer B · sends events · Log-based world: groups read partitions Producer B sends events Partition 0 · ordered offsets · Log-based world: groups read partitions · append-only Partition 0 ordered offsets append-only Partition 1 · ordered offsets · Log-based world: groups read partitions · append-only Partition 1 ordered offsets append-only Group A, C1 · owns partition 0 · Log-based world: groups read partitions Group A, C1 owns partition 0 Group A, C2 · owns partition 1 · Log-based world: groups read partitions Group A, C2 owns partition 1 Group B, C1 · reads every partition · Log-based world: groups read partitions · fan-out across groups Group B, C1 reads every partition fan-out across groups send send queue publish 1 of 2 1 of 2 to all to all append append read in order read in order AMQP/JMS world: broker assigns messages Log-based world: groups read partitions Legend Message bus External