542 B
542 B
Stopping Kafka mid-sync did not block clinical data persistence: the sync batch processor
applied the observation to PostgreSQL and left one outbox row pending (processed_at IS NULL).
When Kafka restarted, OutboxRelayService drained the backlog within 60 seconds
(outbox pending 1 → 0). This demonstrates the intended separation between Tier 1 durable
writes and Tier 2 async scoring pipelines — NEWS2 and downstream consumers may lag during
broker outages, but observations are not lost and replay correctly once Kafka is available.