packages feed

keiro-dsl-0.15.0.0: test/fixtures/projection-catalog-unrelated.keiro

language keiro-dsl 5
context catalog-demo

target auxiliary_target {
  schema = "auxiliary"
  table = "auxiliary_projection"
  reset = clear
}

rebuild-group auxiliary_support {
  targets = [ auxiliary_target ]
  order = [ auxiliary_target ]
}

projection-owner auxiliary_writer {
  source = category "auxiliary"
  delivery = subscription
  group = auxiliary_support
  targets = [ auxiliary_target ]
  order = 30
  subscription = "catalog-demo-auxiliary"
  dedup = "catalog-demo-auxiliary-v1"
  checkpoint-on-missing = fail
  replay = explicit
}

readmodel auxiliaryLookup {
  columns {
    auxiliary_id text required
  }
  version = 1
  shape = "fnv1a:9e47caadf66af824"
  freshness = immediate
  group = auxiliary_support
  targets = [ auxiliary_target ]
}

workqueue auxiliary_jobs {
  queue logical = "catalog-demo.auxiliary-jobs"
  derive physical = "catalog_demo_auxiliary_jobs"
         dlq = "catalog_demo_auxiliary_jobs_dlq"
         table = "pgmq.q_catalog_demo_auxiliary_jobs"

  payload AuxiliaryJob {
    jobId -> "job_id" text required
  }

  retry maxRetries = 2 delay = 1s dlq = on

  disposition {
    storeFailure -> retry 1s
    commandRejected -> deadLetter
    decodeFailure -> deadLetter
    onCodecReject -> deadLetter
  }
}

aggregate Auxiliary
  regs
    count Natural = 0
  states Empty Recorded!

  command RecordAuxiliary { amount:Natural }
  event AuxiliaryCaptured = fields(RecordAuxiliary)

  Empty -- RecordAuxiliary --> write count := amount ; emit AuxiliaryCaptured ; goto Recorded

  wire kind=ctorName fields=camelCase schemaVersion=1