same IdempotencyKey converges on one OrderId — recovery replays the stream before choosing the next step
Guided views
Explore this system
Step through curated paths without changing the source diagram.
Beat
Next
ReadyChapter 01 / 01
Guided chapter
Diagram guideExplore this system
Inspecting compiled semantics
E ExportT ThemeS Style0 Reset+ Zoom in- Zoom outEsc Close
Find a node
⌕/
No matching nodes
Semantic passport
Verified source
Authored reach
Route probeChoose a start node
Pick two semantic nodes on the diagram
Choose the source, then the destination. Direction matters.
Semantic lensCompare system roles
Choose up to two semantic kinds. One reveals its real traffic; two compare only direct authored relationships.
Choose a kind to inspect its nodes and touching relationships.
Semantic radar
Building overview
Click nodeDrag to pan
Semantic radar needs more MAP space.
Concurrent start (mermaid par ... and ...)
• Messages 1-4 ([par]-tagged) run concurrently, not sequentially: Client A → CommerceApi A → Commerce State and Client B → CommerceApi B → Commerce State happen at the same time. Whichever request first succeeds at reserving the mapping decides the OrderId; the other discards its candidate and uses the same one.
Recovery replays the stream before choosing the next step
• mermaid Note over Workflow,Events (positioned right before 'Replay OrderId stream'): 'Recovery replays the stream before choosing the next step.'
• If SourceCommandId is already in the stream, the Workflow doesn't re-record the event — it returns the fold result. The Workflow replays to confirm the last-recorded state (e.g. InventoryReserved), skips the completed step, and runs from payment onward. This rule applies both to an explicit ContinueOrderWorkflowReq and to resumption after a planned relocation.