A saga’s compensation is not the inverse of the step it undoes, and deciding what it should be is a conversation with somebody outside engineering. Ordering the steps…
A transaction spanning three services does not exist, and the pattern that replaces it is a sequence of local transactions each with an operation that undoes it. Compensations…
The outbox is the smallest correct answer to the dual write problem, and the implementation is one insert and a worker. The index on (published_at, id) is what…
The naming decides the coupling. ReserveInventory names a recipient and expects an outcome; OrderPlaced names neither, so a second consumer can be added without touching the publisher. Past…