Tagged events
2 pieces
- · 11 min read
OpenAPI Cannot Describe Your Events: Seven Things an Event Contract Must State
Request-response interface description formats cannot express an event-driven contract. There is no caller, there is no meaningful response, delivery is at-least-once, and ordering is not guaranteed. Teams document their events in a request-response format anyway, and the resulting document omits exactly the properties that cause incidents. Here are the seven things an event contract has to state, and how a unique index becomes the place the contract is actually enforced.
- · 6 min read
Exactly-Once in Effect Is Not Exactly-Once, and the Difference Is Where Your Ledger Stops
Deduplicating on an event identifier and deriving state from an append-only ledger gives you exactly-once behaviour over an at-least-once unordered stream. That is the strongest thing available and it rests on one assumption: that the identifier is a sound deduplication key. Name the assumption, because the cases where it fails are real and the backstop is reconciliation rather than the handler.