ComplianceTimerService emits mlos.compliance.timer.breached on SLA breach (doc 03 §2.8)

Featurekamo-shared-library
Shipped
June 27, 2026 at 3:09 PM UTC
Author
Kamo
Commit
49debdb

The javadoc-named follow-up to the shipped Slice-2c timers: "event emission to a Compliance queue is a follow-up." expireBreached() now emits a COMPLIANCE_TIMER_BREACHED event per ARMED→EXPIRED timer, written to the outbox IN THE SAME TRANSACTION as the flip (the transactional-outbox guarantee: a breach is escalated iff it is durably recorded). The downstream consumer drives the HIGH steward escalation + the OrchestrationState BLOCKED→STALE abandonment (a later slice). - OutboxWriter injected as an OPTIONAL dependency **************** null disables emission so the service still expires timers when the outbox substrate isn't wired in the running service — graceful, backward-compatible with DaemonService's current autowiring (the 3-arg test seam is preserved). - Envelope: domain=compliance, aggregateId=loanFileId, payload carries **************** - New open String event-type constant **************** (no schema change → no KamoInitializer run). - 14 ComplianceTimerService tests green (12 existing unchanged + 2 emission tests). Faithful mirror of the shipped decision-spine/webhook-ingress outbox-producer pattern (review-exempt).

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing