[08] ReconciledFactPublisher — los.pipeline.fact publish seam (D34)

FeatureSecurityService
Shipped
July 4, 2026 at 10:28 AM UTC
Author
Kamo
Commit
c2c68c0

doc 08 §3.3: the locked **************** must not gain a NATS publisher (that edits donotmodify). Add a non-locked ReconciledFactPublisher wrapper that reconciles, then on a non-zero change count emits los.pipeline.fact.<orgId> on the existing LOS_PIPELINE stream (los.pipeline.> already binds it — no new stream/ table), so the readiness loop can fire. Repoint the sole caller (MortgageConnectController's reconcile endpoint) at the wrapper; the locked service is untouched. Placement (D34): co-located in SecurityService with its only current caller, not in MLOSCapitalMarketsService as §3.3 tentatively suggested (that assumed an RCE-side caller that does not exist yet). The mandated invariant — never publish from inside the locked service — holds either way. Best-effort like LosPipelinePublisher: absent NATS or a publish failure is logged + swallowed, the count is still returned. 4 tests green.

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