keiro-dsl-0.15.0.0: test/fixtures/reservation-work.keiro
language keiro-dsl 4
context hospital-capacity
readmodel accepted_transfer_needs {
table = "accepted_transfer_needs"
schema = "hospital_capacity"
columns {
reservation_id text required
hospital_id text required
}
version = 1
shape = "fnv1a:fec517dae7760b8a"
consistency = Eventual
feed = subscription
}
readmodel transfer_decisions {
table = "transfer_decisions"
schema = "hospital_capacity"
columns {
reservation_id text required
}
version = 1
shape = "fnv1a:d44d218822582783"
consistency = Eventual
feed = subscription
}
workqueue reservation_work {
queue logical = "hospital_capacity.reservation_work"
derive physical = "hospital_capacity_reservation_work"
dlq = "hospital_capacity_reservation_work_dlq"
table = "pgmq.q_hospital_capacity_reservation_work"
ordering fifo-throughput
group key from reservationId via raw
payload ReservationWorkItem {
reservationId -> "reservation_id" text required
hospitalId -> "hospital_id" text required
commandId -> "command_id" text required
lifeCriticalOverride -> "life_critical_override" bool required
}
retry maxRetries = 3 delay = 5s dlq = on
disposition {
storeFailure -> retry 5s
commandRejected -> deadLetter
decodeFailure -> deadLetter
onCodecReject -> deadLetter
}
}
dispatch reservation_work_dispatch {
source readModel = accepted_transfer_needs key = reservationId
fanout body = resolveTransferCandidates
dedup key = reservationId
seenIn readModel = transfer_decisions field = reservation_id
seenIn queue = reservation_work field = reservation_id
enqueue to = reservation_work
}