Two Teams, One Stream

OrderPlaced events flow into a work queue read by the fulfillment service. Analytics now needs every order too, and a teammate proposes simply pointing an analytics consumer at the same queue. Why is that wrong, and what should be done instead?

A

It works as long as analytics runs in automatic acknowledgement mode, which leaves the message in the queue for fulfillment

B

Consumers on one queue compete, so each service sees only part of the stream; publish to a topic with a queue per service

C

The two consumers would each get a full copy, but analytics would acknowledge messages fulfillment still needs, so ordering must be enforced first

D

It works as long as analytics uses a distinct consumer tag, which tells the broker to deliver copies rather than compete