Skip to content
Event storming templates

Event Storm — Motor Insurance Claim

First notification of loss through assessment to settlement, showing a single validation command that fans out into an accept and a decline event.

Template previewEvent storming
Motor claim — notification to settlementBounded contexts3Domain events6Event coverage100%Hotspots3Model smells0Domain eventCommandActorAggregatePolicyRead modelExternal systemHotspotNotification1 event · 1 command · 1 policy · 1 hotspotClaimAssessment3 events · 2 commands · 1 policy · 1 hotspotCover checkClaimSettlement2 events · 2 commands · 0 policies · 1 hotspotPaymentPolicyholderNotify lossLoss notifiedClaim trackerTelematics providerThird-party claimsarrive by post —where do they enter?When loss notified,validate coverUnderwriting engineValidate coverCover validatedCover declinedHandlerInstruct engineerVehicle inspectedThe total-lossthreshold differs bybrokerWhen vehicleinspected, authoriserepairHandlerAuthorise repairRepair authorisedFinance teamSettle claimClaim settledReserve and leakagereportSalvage income isbooked outside theclaimWorkshop checksEvents with no producing command0noneCommands with no resulting event0noneCommands with no aggregate0noneAggregates with no events0nonePolicies with a missing trigger event0nonePolicies with a missing command0noneHotspots per context3Notification 1 · Assessment 1 · Settlement 1Cross-context flows2Notification → Assessment · Assessment → Settlement

Make it your own.

title "Motor claim — notification to settlement"

context "Notification"
  actor Policyholder
  aggregate Claim
  command "Notify loss" by Policyholder on Claim
  event "Loss notified" from "Notify loss"
  readmodel "Claim tracker"
  external "Telematics provider"
  hotspot "Third-party claims arrive by post — where do they enter?"
  policy "When loss notified, validate cover" then "Validate cover"

context "Assessment"
  aggregate "Cover check"
  actor Handler
  // One command, two outcomes: both events name it as their producer.
  command "Validate cover" by "Underwriting engine" on "Cover check"
  event "Cover validated" from "Validate cover"
  event "Cover declined" from "Validate cover"
  command "Instruct engineer" by Handler on Claim
  event "Vehicle inspected" from "Instruct engineer"
  hotspot "The total-loss threshold differs by broker"
  policy "When vehicle inspected, authorise repair" then "Authorise repair"

context "Settlement"
  aggregate Payment
  command "Authorise repair" by Handler on Payment
  event "Repair authorised" from "Authorise repair"
  command "Settle claim" by "Finance team" on Payment
  event "Claim settled" from "Settle claim"
  readmodel "Reserve and leakage report"
  hotspot "Salvage income is booked outside the claim"