Stream design workspace / Reading notes
Design an event as a fact
A stable envelope helps producers and consumers evolve separately.
Name what happened
Prefer a completed domain fact to a vague instruction. Explain the meaning of the event and when it is emitted relative to the source transaction.
Keep identity stable
Assign an event identifier once and preserve it through retries. Include an entity key when consumers need to relate successive facts about the same object.
Minimize the payload
Include what consumers need under an agreed contract. Avoid copying entire internal records and secrets into a stream that may have wider readership.