packages feed

keiro-dsl-0.15.0.0: test/fixtures/reservation-work-rename.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_jobs"
  derive physical = "hospital_capacity_reservation_jobs"
         dlq = "hospital_capacity_reservation_jobs_dlq"
         table = "pgmq.q_hospital_capacity_reservation_jobs"

  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
}