keiro-dsl-0.15.0.0: test/fixtures/incident-paging/incident-paging.keiro
language keiro-dsl 4
context incident-paging
readmodel service_oncall {
table = "service_oncall"
schema = "incident_paging"
columns {
responder_id text required
service text required
}
version = 1
shape = "fnv1a:1d7aef5c25b434fd"
consistency = Eventual
feed = subscription
subscription = "incident-paging-service-oncall-sub"
}
router PagingRouter
name "jitsurei-paging"
input IncidentRaised { incidentId service }
key input.incidentId via idText
resolve stable via read-model service_oncall row { responderId }
target Page
projections [ ]
dispatch-each SendPage { incidentId=input.incidentId responderId=resolved.responderId }
on-appended AckOk ; on-duplicate AckOk ; on-failed Retry
dispatch-id strategy=uuidv5 from=(name, key, sourceEventId, targetStreamName, occurrence)
rejected => deadLetter
poison => halt
aggregate Page
regs
states Pending Delivered!
command SendPage { incidentId responderId }
event PageSent = fields(SendPage)
Pending -- SendPage --> emit PageSent ; goto Delivered