Event Storming - orders
orders-event-storming · blueprint v2.8 · generated 2026-11-04 11:23 UTC

Overview

Event Storming board for orders: what happens (events), what asks for it (commands) and what reacts (policies), on Big Picture, Process Modelling and Software Design.

The example below is one real story of this model, Place an order (orders.PRC001); read it left to right.

How to read

actor: Shopper Shopper
Actor orders.ACT001 (Shopper): starts the story
command: PlaceOrder Place Order
Command orders.CMD001 (PlaceOrder): a request; it raises the event
event: OrderPlaced Order Placed
Event orders.EVT001 (OrderPlaced): has happened; the policy reacts
policy: Set the order's initial state to the one the payment module reports at validation, such as Awaiting payment or Payment accepted Set the order'sinitial state to theone the paymentmodule reports a…
Policy: reacts by issuing the next command
command: UpdateOrderStatus Update OrderStatus
Command orders.CMD004 (UpdateOrderStatus): the next request, issued by the policy

7 of 7 hotspots on Big Picture are still open: risks, questions and findings to discuss.

Not drawn as stickies on Big Picture: bounded contexts (1), a context names a grouping rather than a sticky, and none of them claims an event; swimlanes (1), drawn as the lanes themselves, not as stickies.

The following pages contain the level inventories, the legend, readable lane figures and model gaps.

Level
Lane
Kind
Big Picture - Event Storming board Big Picture The story spine, and what no story reaches. 28 of 28 stickies drawn · orders implementation: 1 as-is · 0 wip · 0 to-be · 0 unclear · 20 unstated of 21 time orders Place an order actor: Shopper Shopperorders.ACT001orders.ACT001 actor: ShopOperator (declared in admin) Shop Operatoradmin.ACT002admin.ACT002 event: OrderPlaced Order Placedorders.EVT001orders.EVT001 hotspot: FO/BO cart total mismatch FO/ BO carttotal mismatchorders.RSK001orders.RSK001 hotspot: Stale exchange rates Stale exchangeratesorders.RSK002orders.RSK002 hotspot: Concurrent stock over-sell Concurrentstock over sellorders.RSK003orders.RSK003 hotspot: Custom order state dead-end risk Custom orderstate dead endriskorders.RSK004orders.RSK004 hotspot: Cart rules engine migration feasibility Cart rulesenginemigrationfeasibilityorders.INQ001orders.INQ001 hotspot: EU exchange rate display regulation EU exchangerate displayregulationorders.INQ002orders.INQ002 hotspot: Smarty vs Twig performance for checkout Smarty vs Twigperformancefor checkoutorders.INQ003orders.INQ003 opportunity: Sub-second checkout transition Sub secondcheckouttransitionorders.GL001orders.GL001 opportunity: Multi-currency order support Multi currencyorder supportorders.GL002orders.GL002 opportunity: Order error rate < 0.1% Order error rate <0 1%orders.GL003orders.GL003 Cancel and refund actor: Merchant Merchantorders.ACT003orders.ACT003 actor: Administrator Administratororders.ACT004orders.ACT004 event: OrderCancelled Order Cancelledorders.EVT002orders.EVT002 event: OrderRefunded Order Refundedorders.EVT003orders.EVT003integration event event: CreditSlipGenerated Credit SlipGeneratedorders.EVT006orders.EVT006 Manage order products actor: Merchant Merchantorders.ACT003orders.ACT003 event: OrderProductModified Order ProductModifiedorders.EVT009orders.EVT009 Generate invoice and record payment (42374) actor: Merchant Merchantorders.ACT003orders.ACT003 event: InvoiceGenerated Invoice Generatedorders.EVT007orders.EVT007 event: PaymentAdded Payment Addedorders.EVT008orders.EVT008 opportunity: EU VAT invoice compliance EU VAT invoicecomplianceorders.GL004orders.GL004 Process return and credit slip (41527) actor: Administrator Administratororders.ACT004orders.ACT004 event: ReturnStateChanged Return StateChangedorders.EVT010orders.EVT010 Request a merchandise return from the storefront actor: Shopper Shopperorders.ACT001orders.ACT001 Actors not on a story path (1) actor: Order Domain Lead Order DomainLeadorders.ACT002orders.ACT002 Systems not on a story path (1) system: OrderService implementation: as-is Order Serviceprestashop.SVC008prestashop.SVC008 Events not on a story path (3) event: OrderShipped Order Shippedorders.EVT004orders.EVT004 event: OrderStatusChanged Order StatusChangedorders.EVT005orders.EVT005integration event event: OrderReturnDeleted Order ReturnDeletedorders.EVT011orders.EVT011 Legend actor system event opportunity hotspot event (integration) hotspot (risk) hotspot (inquiry) as-is - in the system Render notes data gap - 3 event-reaches-no-story; the board draws what the model states and nothing more 21 connectors are not drawn because an endpoint is not on this board the board draws 0 of 7 hotspots beside what the model says they affect the model states a lifecycle for 6 of 7 hotspots here: 0 settled (a risk it closed, an inquiry it resolved or closed), 6 still open; 1 states none bounded_contexts (1) is not drawn: a context names a grouping rather than a sticky, and none of them claims an event swimlanes (1) is not drawn: drawn as the lanes themselves, not as stickies
Process Modelling - Event Storming board Process Modelling The story spine, and what no story reaches. 94 of 94 stickies drawn, plus 2 placeholders and 1 called process · orders implementation: 10 as-is · 0 wip · 0 to-be · 0 unclear · 77 unstated of 87 time orders Place an order actor: Shopper Shopperorders.ACT001orders.ACT001 actor: ShopOperator (declared in admin) Shop Operatoradmin.ACT002admin.ACT002 command: PlaceOrder Place Orderorders.CMD001orders.CMD001 event: OrderPlaced Order Placedorders.EVT001orders.EVT001 hotspot: FO/BO cart total mismatch FO/ BO carttotal mismatchorders.RSK001orders.RSK001 hotspot: Stale exchange rates Stale exchangeratesorders.RSK002orders.RSK002 hotspot: Concurrent stock over-sell Concurrentstock over sellorders.RSK003orders.RSK003 hotspot: Custom order state dead-end risk Custom orderstate dead endriskorders.RSK004orders.RSK004 hotspot: Cart rules engine migration feasibility Cart rulesenginemigrationfeasibilityorders.INQ001orders.INQ001 hotspot: EU exchange rate display regulation EU exchangerate displayregulationorders.INQ002orders.INQ002 hotspot: Smarty vs Twig performance for checkout Smarty vs Twigperformancefor checkoutorders.INQ003orders.INQ003 Cancel and refund actor: Merchant Merchantorders.ACT003orders.ACT003 actor: Administrator Administratororders.ACT004orders.ACT004 command: CancelOrder Cancel Orderorders.CMD002orders.CMD002 event: OrderCancelled Order Cancelledorders.EVT002orders.EVT002 command: IssueStandardRefund Issue StandardRefundorders.CMD003orders.CMD003 event: OrderRefunded Order Refundedorders.EVT003orders.EVT003integration event event: CreditSlipGenerated Credit SlipGeneratedorders.EVT006orders.EVT006 command: IssuePartialRefund Issue PartialRefundorders.CMD015orders.CMD015 Manage order products actor: Merchant Merchantorders.ACT003orders.ACT003 command: AddProductToOrder Add Product ToOrderorders.CMD020orders.CMD020 event: OrderProductModified Order ProductModifiedorders.EVT009orders.EVT009 Generate invoice and record payment (42374) actor: Merchant Merchantorders.ACT003orders.ACT003 command: GenerateInvoice Generate Invoiceorders.CMD017orders.CMD017 event: InvoiceGenerated Invoice Generatedorders.EVT007orders.EVT007 actor: Administrator Administratororders.ACT004orders.ACT004 command: AddPayment Add Paymentorders.CMD019orders.CMD019 event: PaymentAdded Payment Addedorders.EVT008orders.EVT008 Process return and credit slip (41527) actor: Administrator Administratororders.ACT004orders.ACT004 actor: Merchant Merchantorders.ACT003orders.ACT003 command: UpdateOrderReturnState Update OrderReturn Stateorders.CMD023orders.CMD023 event: ReturnStateChanged Return StateChangedorders.EVT010orders.EVT010 command: IssueReturnProduct Issue ReturnProductorders.CMD016orders.CMD016 Request a merchandise return from the storefront actor: Shopper Shopperorders.ACT001orders.ACT001 placeholder: Choose what to send back Choose what tosend back placeholder: Submit the request Submit therequest actor: Merchant Merchantorders.ACT003orders.ACT003 actor: Administrator Administratororders.ACT004orders.ACT004 process: Process return and credit slip Process returnand credit sliporders.PRC005orders.PRC005 command: UpdateOrderStatus Update OrderStatusorders.CMD004orders.CMD004 event: OrderStatusChanged Order StatusChangedorders.EVT005orders.EVT005integration event command: UpdateShippingDetails Update ShippingDetailsorders.CMD014orders.CMD014 event: OrderShipped Order Shippedorders.EVT004orders.EVT004 command: DeleteOrderReturn Delete OrderReturnorders.CMD037orders.CMD037 event: OrderReturnDeleted Order ReturnDeletedorders.EVT011orders.EVT011 Actors not on a story path (1) actor: Order Domain Lead Order DomainLeadorders.ACT002orders.ACT002 Systems not on a story path (1) system: OrderService implementation: as-is Order Serviceprestashop.SVC008prestashop.SVC008 Commands not on a story path (28) command: UpdateInvoiceNote Update InvoiceNoteorders.CMD018orders.CMD018 command: AddOrderState Add Order Stateorders.CMD024orders.CMD024 command: EditOrderState Edit Order Stateorders.CMD025orders.CMD025 command: DeleteOrderState Delete Order Stateorders.CMD026orders.CMD026 command: BulkDeleteOrderState Bulk Delete OrderStateorders.CMD027orders.CMD027 command: AddOrderMessage Add OrderMessageorders.CMD028orders.CMD028 command: EditOrderMessage Edit OrderMessageorders.CMD029orders.CMD029 command: DeleteOrderMessage Delete OrderMessageorders.CMD030orders.CMD030 command: BulkDeleteOrderMessage Bulk Delete OrderMessageorders.CMD031orders.CMD031 command: AddOrderReturnState Add Order ReturnStateorders.CMD032orders.CMD032 command: EditOrderReturnState Edit Order ReturnStateorders.CMD033orders.CMD033 command: DeleteOrderReturnState Delete OrderReturn Stateorders.CMD034orders.CMD034 command: BulkDeleteOrderReturnState Bulk Delete OrderReturn Stateorders.CMD035orders.CMD035 command: AddOrderCustomerMessage Add OrderCustomerMessageorders.CMD036orders.CMD036 command: BulkChangeOrderStatus Bulk Change OrderStatusorders.CMD005orders.CMD005 command: DuplicateOrderCart Duplicate OrderCartorders.CMD006orders.CMD006 command: ChangeOrderCurrency Change OrderCurrencyorders.CMD007orders.CMD007 command: ChangeDeliveryAddress Change DeliveryAddressorders.CMD008orders.CMD008 command: ChangeInvoiceAddress Change InvoiceAddressorders.CMD009orders.CMD009 command: AddCartRule Add Cart Ruleorders.CMD010orders.CMD010 command: RemoveCartRule Remove Cart Ruleorders.CMD011orders.CMD011 command: SetInternalNote Set Internal Noteorders.CMD012orders.CMD012 command: ResendOrderEmail Resend OrderEmailorders.CMD013orders.CMD013 command: RemoveProductFromOrder Remove ProductFrom Orderorders.CMD021orders.CMD021 command: UpdateOrderProduct Update OrderProductorders.CMD022orders.CMD022 command: BulkDeleteOrderReturns Bulk Delete OrderReturnsorders.CMD038orders.CMD038 command: DeleteProductFromOrderReturn Delete ProductFrom Order Returnorders.CMD039orders.CMD039 command: BulkDeleteProductsFromOrderReturn Bulk DeleteProducts FromOrder Returnorders.CMD040orders.CMD040 Policies not on a story path (3) policy: Generate the invoice when the order enters a state that carries the invoice flag, such as Payment accepted Generate theinvoice when theorder enters astate that carries…orders.CMD017orders.CMD017 policy: Settle the outstanding balance of every invoice when the order enters a state flagged paid, so the order's payment record matches the state the merchant just selected Settle theoutstandingbalance of everyinvoice when the…orders.CMD019orders.CMD019 policy: Set the order's initial state to the one the payment module reports at validation, such as Awaiting payment or Payment accepted Set the order'sinitial state to theone the paymentmodule reports a…orders.CMD004orders.CMD004 Read Models not on a story path (27) read_model: Order List Order Listorders.SCR001orders.SCR001 read_model: Order Detail Order Detailorders.SCR002orders.SCR002 read_model: Return Management ReturnManagementorders.SCR003orders.SCR003 read_model: Order history implementation: as-is Order historyorders.SCR004orders.SCR004 read_model: Order detail (storefront) implementation: as-is Order detail(storefront)orders.SCR005orders.SCR005 read_model: Merchandise returns implementation: as-is Merchandisereturnsorders.SCR006orders.SCR006 read_model: Filter Orders Filter Ordersorders.UAC001orders.UAC001 read_model: Cancel Order Cancel Orderorders.UAC002orders.UAC002 read_model: Process Refund Process Refundorders.UAC003orders.UAC003 read_model: Generate Invoice Generate Invoiceorders.UAC004orders.UAC004 read_model: Add Payment Add Paymentorders.UAC005orders.UAC005 read_model: Update Return Status Update ReturnStatusorders.UAC006orders.UAC006 read_model: Send a message about this order implementation: as-is Send a messageabout this orderorders.UAC007orders.UAC007 read_model: Request a return for these lines implementation: as-is Request a returnfor these linesorders.UAC008orders.UAC008 read_model: Open an order from the history implementation: as-is Open an orderfrom the historyorders.UAC009orders.UAC009 read_model: Open an order from the list implementation: as-is Open an orderfrom the listorders.UAC010orders.UAC010 read_model: Open a return from the order implementation: as-is Open a returnfrom the orderorders.UAC011orders.UAC011 read_model: GetOrderStateForEditing Get Order StateFor Editingorders.QRY005orders.QRY005 read_model: GetOrderMessageForEditing Get OrderMessage ForEditingorders.QRY006orders.QRY006 read_model: GetOrderReturnStateForEditing Get Order ReturnState For Editingorders.QRY009orders.QRY009 read_model: GetOrderForViewing Get Order ForViewingorders.QRY001orders.QRY001 read_model: GetOrderPreview Get Order Previeworders.QRY002orders.QRY002 read_model: GetOrderProducts Get OrderProductsorders.QRY003orders.QRY003 read_model: CreditSlip implementation: as-is Credit Sliporders.CN009orders.CN009 read_model: GetCreditSlips Get Credit Slipsorders.QRY004orders.QRY004 read_model: GetOrderReturnForEditing Get Order ReturnFor Editingorders.QRY007orders.QRY007 read_model: GetOrderReturnProducts Get Order ReturnProductsorders.QRY008orders.QRY008 Legend actor system command event policy process read model hotspot placeholder event (integration) hotspot (risk) hotspot (inquiry) read model (Operation) read model (UI Action) read model (Screen) as-is - in the system Render notes data gap - 3 event-reaches-no-story; the board draws what the model states and nothing more 2 placeholders stand for story steps that name no unit this board carries; not counted among the stickies drawn 1 called process is drawn inside the flow that calls it, as a process sticky; not counted among the stickies drawn 13 connectors are not drawn because an endpoint is not on this board 3 connectors join two stickies inside one frame, and the frame says it more clearly than a line would the board draws 0 of 7 hotspots beside what the model says they affect the model states a lifecycle for 6 of 7 hotspots here: 0 settled (a risk it closed, an inquiry it resolved or closed), 6 still open; 1 states none bounded_contexts (1) is not drawn: a context names a grouping rather than a sticky, and none of them claims an event swimlanes (1) is not drawn: drawn as the lanes themselves, not as stickies
Software Design - Event Storming board Software Design The story spine, and what no story reaches. 113 of 113 stickies drawn, plus 2 placeholders and 1 called process · orders implementation: 13 as-is · 0 wip · 0 to-be · 0 unclear · 89 unstated of 102 time orders Place an order actor: Shopper Shopperorders.ACT001orders.ACT001 actor: ShopOperator (declared in admin) Shop Operatoradmin.ACT002admin.ACT002 command: PlaceOrder Place Orderorders.CMD001orders.CMD001 event: OrderPlaced Order Placedorders.EVT001orders.EVT001 hotspot: FO/BO cart total mismatch FO/ BO carttotal mismatchorders.RSK001orders.RSK001 hotspot: Stale exchange rates Stale exchangeratesorders.RSK002orders.RSK002 hotspot: Concurrent stock over-sell Concurrentstock over sellorders.RSK003orders.RSK003 hotspot: Custom order state dead-end risk Custom orderstate dead endriskorders.RSK004orders.RSK004 hotspot: Cart rules engine migration feasibility Cart rulesenginemigrationfeasibilityorders.INQ001orders.INQ001 hotspot: EU exchange rate display regulation EU exchangerate displayregulationorders.INQ002orders.INQ002 hotspot: Smarty vs Twig performance for checkout Smarty vs Twigperformancefor checkoutorders.INQ003orders.INQ003 Cancel and refund actor: Merchant Merchantorders.ACT003orders.ACT003 actor: Administrator Administratororders.ACT004orders.ACT004 command: CancelOrder Cancel Orderorders.CMD002orders.CMD002 event: OrderCancelled Order Cancelledorders.EVT002orders.EVT002 command: IssueStandardRefund Issue StandardRefundorders.CMD003orders.CMD003 event: OrderRefunded Order Refundedorders.EVT003orders.EVT003integration event event: CreditSlipGenerated Credit SlipGeneratedorders.EVT006orders.EVT006 command: IssuePartialRefund Issue PartialRefundorders.CMD015orders.CMD015 Manage order products actor: Merchant Merchantorders.ACT003orders.ACT003 command: AddProductToOrder Add Product ToOrderorders.CMD020orders.CMD020 event: OrderProductModified Order ProductModifiedorders.EVT009orders.EVT009 Generate invoice and record payment (42374) actor: Merchant Merchantorders.ACT003orders.ACT003 command: GenerateInvoice Generate Invoiceorders.CMD017orders.CMD017 event: InvoiceGenerated Invoice Generatedorders.EVT007orders.EVT007 actor: Administrator Administratororders.ACT004orders.ACT004 command: AddPayment Add Paymentorders.CMD019orders.CMD019 event: PaymentAdded Payment Addedorders.EVT008orders.EVT008 Process return and credit slip (41527) actor: Administrator Administratororders.ACT004orders.ACT004 actor: Merchant Merchantorders.ACT003orders.ACT003 command: UpdateOrderReturnState Update OrderReturn Stateorders.CMD023orders.CMD023 event: ReturnStateChanged Return StateChangedorders.EVT010orders.EVT010 command: IssueReturnProduct Issue ReturnProductorders.CMD016orders.CMD016 Request a merchandise return from the storefront actor: Shopper Shopperorders.ACT001orders.ACT001 placeholder: Choose what to send back Choose what tosend back placeholder: Submit the request Submit therequest actor: Merchant Merchantorders.ACT003orders.ACT003 actor: Administrator Administratororders.ACT004orders.ACT004 process: Process return and credit slip Process returnand credit sliporders.PRC005orders.PRC005 Orderconstraint: Order command: UpdateOrderStatus Update OrderStatusorders.CMD004orders.CMD004 command: BulkChangeOrderStatus Bulk Change OrderStatusorders.CMD005orders.CMD005 command: RemoveProductFromOrder Remove ProductFrom Orderorders.CMD021orders.CMD021 rule: A paid order moves from Payment accepted to Processing in progress A paid ordermoves fromPayment acceptedto Processing in…orders.TR001orders.TR001 rule: A partial refund is positive and never exceeds what is left on a line A partial refund ispositive and neverexceeds what isleft on a lineorders.VR004orders.VR004 rule: A payment recorded on an order cannot be negative A paymentrecorded on anorder cannot benegativeorders.VR002orders.VR002 rule: An order gets its invoice on an invoicing status or on request An order gets itsinvoice on aninvoicing status oron requestorders.SR002orders.SR002 rule: An order is placed only from a cart with at least one product An order is placedonly from a cartwith at least oneproductorders.SR001orders.SR001 rule: An order may move to any status other than its current one An order maymove to anystatus other thanits current oneorders.CR001orders.CR001 rule: Checkout needs a delivery and an invoice address in enabled countries Checkout needs adelivery and aninvoice address inenabled countriesorders.VR001orders.VR001 rule: Order total equals products less discounts plus shipping and wrapping Order total equalsproducts lessdiscounts plusshipping and wr…orders.EQ001orders.EQ001 rule: Returns are open only when enabled, for a paid and shipped order, within the return period Returns are openonly whenenabled, for a paidand shipped ord…orders.VR003orders.VR003 rule: The delivery estimate is the carrier transit time The deliveryestimate is thecarrier transit timeorders.DR001orders.DR001 rule: The last line of an order cannot be removed The last line of anorder cannot beremovedorders.SR004orders.SR004 event: Order processing implementation: as-is Order processingorders.CN002orders.CN002 event: OrderStatusChanged Order StatusChangedorders.EVT005orders.EVT005integration event OrderReturnconstraint: OrderReturn command: DeleteProductFromOrderReturn Delete ProductFrom Order Returnorders.CMD039orders.CMD039 command: BulkDeleteProductsFromOrderReturn Bulk DeleteProducts FromOrder Returnorders.CMD040orders.CMD040 rule: Merchandise return must keep at least one product line Merchandisereturn must keepat least oneproduct lineorders.SR003orders.SR003 command: UpdateShippingDetails Update ShippingDetailsorders.CMD014orders.CMD014 event: OrderShipped Order Shippedorders.EVT004orders.EVT004 command: DeleteOrderReturn Delete OrderReturnorders.CMD037orders.CMD037 event: OrderReturnDeleted Order ReturnDeletedorders.EVT011orders.EVT011 Actors not on a story path (1) actor: Order Domain Lead Order DomainLeadorders.ACT002orders.ACT002 Systems not on a story path (1) system: OrderService implementation: as-is Order Serviceprestashop.SVC008prestashop.SVC008 Commands not on a story path (24) command: UpdateInvoiceNote Update InvoiceNoteorders.CMD018orders.CMD018 command: AddOrderState Add Order Stateorders.CMD024orders.CMD024 command: EditOrderState Edit Order Stateorders.CMD025orders.CMD025 command: DeleteOrderState Delete Order Stateorders.CMD026orders.CMD026 command: BulkDeleteOrderState Bulk Delete OrderStateorders.CMD027orders.CMD027 command: AddOrderMessage Add OrderMessageorders.CMD028orders.CMD028 command: EditOrderMessage Edit OrderMessageorders.CMD029orders.CMD029 command: DeleteOrderMessage Delete OrderMessageorders.CMD030orders.CMD030 command: BulkDeleteOrderMessage Bulk Delete OrderMessageorders.CMD031orders.CMD031 command: AddOrderReturnState Add Order ReturnStateorders.CMD032orders.CMD032 command: EditOrderReturnState Edit Order ReturnStateorders.CMD033orders.CMD033 command: DeleteOrderReturnState Delete OrderReturn Stateorders.CMD034orders.CMD034 command: BulkDeleteOrderReturnState Bulk Delete OrderReturn Stateorders.CMD035orders.CMD035 command: AddOrderCustomerMessage Add OrderCustomerMessageorders.CMD036orders.CMD036 command: DuplicateOrderCart Duplicate OrderCartorders.CMD006orders.CMD006 command: ChangeOrderCurrency Change OrderCurrencyorders.CMD007orders.CMD007 command: ChangeDeliveryAddress Change DeliveryAddressorders.CMD008orders.CMD008 command: ChangeInvoiceAddress Change InvoiceAddressorders.CMD009orders.CMD009 command: AddCartRule Add Cart Ruleorders.CMD010orders.CMD010 command: RemoveCartRule Remove Cart Ruleorders.CMD011orders.CMD011 command: SetInternalNote Set Internal Noteorders.CMD012orders.CMD012 command: ResendOrderEmail Resend OrderEmailorders.CMD013orders.CMD013 command: UpdateOrderProduct Update OrderProductorders.CMD022orders.CMD022 command: BulkDeleteOrderReturns Bulk Delete OrderReturnsorders.CMD038orders.CMD038 Policies not on a story path (3) policy: Generate the invoice when the order enters a state that carries the invoice flag, such as Payment accepted Generate theinvoice when theorder enters astate that carries…orders.CMD017orders.CMD017 policy: Settle the outstanding balance of every invoice when the order enters a state flagged paid, so the order's payment record matches the state the merchant just selected Settle theoutstandingbalance of everyinvoice when the…orders.CMD019orders.CMD019 policy: Set the order's initial state to the one the payment module reports at validation, such as Awaiting payment or Payment accepted Set the order'sinitial state to theone the paymentmodule reports a…orders.CMD004orders.CMD004 Read Models not on a story path (27) read_model: Order List Order Listorders.SCR001orders.SCR001 read_model: Order Detail Order Detailorders.SCR002orders.SCR002 read_model: Return Management ReturnManagementorders.SCR003orders.SCR003 read_model: Order history implementation: as-is Order historyorders.SCR004orders.SCR004 read_model: Order detail (storefront) implementation: as-is Order detail(storefront)orders.SCR005orders.SCR005 read_model: Merchandise returns implementation: as-is Merchandisereturnsorders.SCR006orders.SCR006 read_model: Filter Orders Filter Ordersorders.UAC001orders.UAC001 read_model: Cancel Order Cancel Orderorders.UAC002orders.UAC002 read_model: Process Refund Process Refundorders.UAC003orders.UAC003 read_model: Generate Invoice Generate Invoiceorders.UAC004orders.UAC004 read_model: Add Payment Add Paymentorders.UAC005orders.UAC005 read_model: Update Return Status Update ReturnStatusorders.UAC006orders.UAC006 read_model: Send a message about this order implementation: as-is Send a messageabout this orderorders.UAC007orders.UAC007 read_model: Request a return for these lines implementation: as-is Request a returnfor these linesorders.UAC008orders.UAC008 read_model: Open an order from the history implementation: as-is Open an orderfrom the historyorders.UAC009orders.UAC009 read_model: Open an order from the list implementation: as-is Open an orderfrom the listorders.UAC010orders.UAC010 read_model: Open a return from the order implementation: as-is Open a returnfrom the orderorders.UAC011orders.UAC011 read_model: GetOrderStateForEditing Get Order StateFor Editingorders.QRY005orders.QRY005 read_model: GetOrderMessageForEditing Get OrderMessage ForEditingorders.QRY006orders.QRY006 read_model: GetOrderReturnStateForEditing Get Order ReturnState For Editingorders.QRY009orders.QRY009 read_model: GetOrderForViewing Get Order ForViewingorders.QRY001orders.QRY001 read_model: GetOrderPreview Get Order Previeworders.QRY002orders.QRY002 read_model: GetOrderProducts Get OrderProductsorders.QRY003orders.QRY003 read_model: CreditSlip implementation: as-is Credit Sliporders.CN009orders.CN009 read_model: GetCreditSlips Get Credit Slipsorders.QRY004orders.QRY004 read_model: GetOrderReturnForEditing Get Order ReturnFor Editingorders.QRY007orders.QRY007 read_model: GetOrderReturnProducts Get Order ReturnProductsorders.QRY008orders.QRY008 Hotspots not on a story path (4) hotspot: How much of this order has been paid, invoiced and refunded? How much ofthis order hasbeen paid,invoiced and r…orders.QN002orders.QN002 hotspot: What state is this order in, and which states may it move to next? What state isthis order in,and whichstates may it…orders.QN001orders.QN001 hotspot: Which parts of this order can still be changed once the customer has placed it? Which parts ofthis order canstill be changedonce the cust…orders.QN004orders.QN004 hotspot: Which products on this order may still be returned, and where is the return now? Which productson this ordermay still bereturned, and…orders.QN003orders.QN003 Legend actor system command event policy process read model constraint rule hotspot placeholder event (integration) hotspot (risk) hotspot (inquiry) hotspot (question) read model (Operation) read model (UI Action) read model (Screen) as-is - in the system Render notes data gap - 3 event-reaches-no-story; the board draws what the model states and nothing more 2 placeholders stand for story steps that name no unit this board carries; not counted among the stickies drawn 1 called process is drawn inside the flow that calls it, as a process sticky; not counted among the stickies drawn 8 connectors are not drawn because an endpoint is not on this board 11 connectors join two stickies inside one frame, and the frame says it more clearly than a line would the board draws 0 of 11 hotspots beside what the model says they affect; 4 are in a heap the model states a lifecycle for 6 of 11 hotspots here: 0 settled (a risk it closed, an inquiry it resolved or closed), 6 still open; 5 state none bounded_contexts (1) is not drawn: a context names a grouping rather than a sticky, and none of them claims an event swimlanes (1) is not drawn: drawn as the lanes themselves, not as stickies

Printed whole to fit the sheet. The report and the PDF delivered beside this page print it at reading size.

Sticky kinds

  • Actorswho acts
  • Systemswhat it runs on
  • Commandswhat is asked for
  • Eventswhat happened
  • Policieswhat reacts
  • Processeswhat coordinates
  • Read Modelswhat is looked at
  • Aggregateswhat enforces
  • Rules
  • Opportunitieswhat could be
  • Hotspotsa concern raised about this system
  • Stand-insnamed by the model, not drawn here: a reference outside this board, or a group too large to draw whole

Marks a sticky can carry

  • event (integration)published across a service boundary: it has an audience outside this context
  • hotspot (risk)something that may go wrong, with a likelihood and an impact
  • hotspot (inquiry)an open question being investigated
  • read model (Operation)
  • read model (UI Action)
  • read model (Screen)
  • hotspot (question)a domain question the model leaves unanswered
scroll to zoom · drag to pan