Diskussion: vad händer med kön när processen kraschar? (in-process vs durable)
4:00
Slut
Talartips
Det ser ut som man kan "ta bort senaste event" för att ångra. Förklara varför det är fel: events är fakta. Att radera fakta = ljuga om historien. Undo = nytt event som kompenserar.
Visa Channel<T>-koden — den är bara 30 rader och pedagogiskt vacker.
Påpeka: kön är per aggregat-id. Olika konton kan processas parallellt; samma konto serialiseras.
Workshop
Skapa CommandEnvelope med AggregateId + Command + TaskCompletionSource.
Skapa AggregateCommandQueue som mappar id → Channel<CommandEnvelope>.
Starta en background-task per kanal som läser sekventiellt.
Lägg in RevertDepositCommand + MoneyDepositReverted-event.