Core and servicing data flow through a nightly extract, warehouse transformation and feature mart before models update collections, limits and early warning. Nothing is inherently wrong with that pipeline. The question is whether its cadence matches the economic half-life of each downstream decision.
A mature credit platform can use four processing modes
Monthly ECL · close · backfills
low urgency / high completeness15-minute behavioural refresh
bounded freshness / simpler operationsSettled payment suppresses collections
material state change / low latencyBureau retrieval during underwriting
request-scoped current evidenceMonthly ECL does not need second-by-second recomputation. A 15-minute micro-batch may capture most value without streaming complexity. Start with payment settled, drawdown, limit changed, DPD changed or bureau received—then map the state and decisions each business event affects.
Source transport changes; canonical business meaning should not
| Mechanism | Strength | Boundary |
|---|---|---|
| API / webhook | Source actively publishes application events | Validate delivery and source semantics |
| CDC | Captures database changes without modifying legacy application | A row change is not automatically a business event |
| Scheduled file | Works where sources remain batch-only | Rows can still become canonical events downstream |
loan_account.balance 500 → 250→SOURCE ADAPTER→SEMANTIC MAPPING→CANONICAL EVENT
The database delta does not explain payment, correction, write-off or migration. Preserve raw source lineage for audit and reprocessing, but serve downstream consumers canonical semantics such as PAYMENT_SETTLED, FACILITY_LIMIT_CHANGED and ACCOUNT_STATE_CHANGED.
Ingestion validates structure, assigns canonical metadata, enforces idempotency and routes invalid events. Source contracts declare identity, semantics, latency, ordering and correction behaviour. schemaVersion and compatibility/upcasting protect consumers as events evolve.
Canonical events produce rebuildable state and targeted feature updates
Query-optimised projections such as account_state, facility_state and customer_credit_state are derived and rebuildable. A settled payment can update payment state, DPD, payment_ratio_90d and a behavioural score without recomputing unrelated income or bureau features.
Each projection carries effective_as_of, available_as_of and updated_at. The decision freshness guard verifies critical input age against versioned policy budgets.
State changes trigger decisions only when policy says they should
| Trigger | Example | Control |
|---|---|---|
| Event trigger | Payment settlement updates collections suppression | Idempotent trigger identity |
| State trigger | Utilisation crosses 79% → 81% | Versioned threshold and prior state |
| Debounced trigger | Many card events coalesce into one score | Short governed window |
| No trigger | Feature changes without material decision effect | Update state only |
Repeated updates must not create repeated actions. Stable decision and action IDs protect exactly-once business effect even when delivery is at-least-once. Coalescing is micro-batching inside an event-driven path; it prevents event storms from turning into noisy rescoring and operational overload.
Streaming reduces latency; it does not eliminate temporal complexity
Preserve event, effective and processing time. Partition by a stable aggregate such as facility or account when same-aggregate ordering matters; global institutional ordering is usually unnecessary.
| Concept | Meaning | Caveat |
|---|---|---|
| Sequence / causal reference | Detect gaps and dependencies | Source quality and aggregate scope matter |
| Watermark | Confidence that earlier event time is sufficiently complete | Not financial finality |
| Allowed lateness | Wait for bounded late data in a window | Decisions cannot wait indefinitely |
| Provisional state | Act before completeness where permitted | Must later reconcile to confirmed state |
Late events, reversals and corrections still require restatement and replay. Duplicate delivery is normal: unique event identity, idempotent consumers and transactional state mutation protect the business effect.
Consumer lag is decision staleness, not merely infrastructure health
If a payment consumer falls behind, collections state goes stale. Monitor lag by stream, consumer and event type. Scale, prioritise material events, degrade non-critical work or coalesce safely—but never drop financial events silently.
11:00events queueLAG BREACH
11:30freshness guardSTOP / FALLBACK / REFER
The worst failure is silent: an API remains healthy while serving yesterday's state as current. Staleness must be visible to decision policy.
Replay rebuilds state without replaying external consequences
Consumers distinguish LIVE from REPLAY. Replay rebuilds projections and features but must not resend emails, repeat collections actions or issue external commands. Action executors use stable IDs so a repeated decision event cannot duplicate its effect.
type ProcessingContext = "LIVE" | "REPLAY";
if (context === "LIVE") {
await actionExecutor.executeOnce(actionId, command);
}Durable canonical history makes state rebuild, feature rebuild and incident recovery possible. Event loss is worse than delay; source-to-canonical count and financial-total reconciliation must expose missing records.
Fast operational state and slower authoritative reconciliation complement each other
Operational projections · features · triggers
Full-state reconciliation · portfolio completeness · recovery
Compare derived state with system-of-record state and classify timing, missing event, duplicate, correction or mapping differences. Avoid separate batch and speed codebases with divergent business logic. One path is the operational projection; the other is its reference/control—not a second truth.
Migrate the vertical slice with the largest material latency gap
A 24-hour process can first become a 15-minute micro-batch. A legacy core can use Core DB → CDC → Adapter → Canonical Event. A daily file can be parsed into canonical events today, allowing later API or CDC transport without changing downstream semantics.
Shadow, align cut-offs, canary and preserve rollback
STATE / FEATURE / DECISION DIFF↗NEW EVENT PATH
Do not compare 14:00 real-time state with end-of-day batch state. Align effective cut-offs, store mismatch reasons and track latency improvement. Run new decisions without executing them, then canary a controlled population with rollback.
Rollback must preserve event history. Before reactivation, replay events accumulated while the old path ran. Irreversible cutovers turn a recoverable consumer defect into data loss.
Measure the complete event-to-action path and its tail
Measure p50, p95 and p99; an average hides operationally damaging tails. Feature update lag is feature availability minus source-event time, decision trigger lag is decision time minus material-event time, and action lag completes the business path.
Streaming introduces stateful operations, cost and observability burden. Formal reporting can remain periodic while risk signals update quickly. Use low latency only where its decision value justifies that burden.
A settled payment should stop a same-day collections action
| Stage | Before | After |
|---|---|---|
| Source | PSP daily file | PSP webhook |
| Payment | Settled at 09:10; visible next batch | Canonical PAYMENT_SETTLED near-immediately |
| State | DWH refresh overnight | Account state and DPD projection update |
| Action | Customer contacted at 15:00 | Collections suppression trigger before contact |
| Finance / ECL | Batch posting and controlled snapshot | Unchanged batch processing |
| Control | Manual exception review | End-of-day authoritative reconciliation |
The new slice reduces action latency without weakening accounting control or forcing monthly ECL into streaming.
A golden event stream tests state, triggers and side effects together
| Test | Expected proof |
|---|---|
| Golden stream | Payment, drawdown, limit, reversal, late and duplicate events produce fixed state/features/triggers |
| Batch/stream equivalence | Same canonical events and cut-off yield identical final state |
| Latency regression | Controlled event reaches state/decision within the test budget |
| Backpressure | Artificial slowdown produces lag alert, no loss, stale guard and recoverable replay |
| Replay safety | State and features rebuild; external actions do not execute |
| Shadow consistency | Aligned batch/event outputs match or carry explained differences |
| Idempotency | Duplicate event and trigger create one business effect |
| Schema compatibility | Old consumers tolerate compatible event evolution |
Operate the pipeline through decision-centric evidence
Monitor event counts, payment amounts, drawdown volumes, reversal rates and DPD transitions. A technically healthy pipeline can still carry wrong economics after a silent semantic change.
| Incident | Broken link |
|---|---|
| Source | Event not emitted |
| Ingestion | Event delayed, rejected or lost |
| State | Projection incorrect |
| Feature | Dependent value stale |
| Trigger | Decision not fired or duplicated |
| Action | Decision not executed or repeated |
The Entimema architecture connects source change to controlled action
- Identify decision
- Define latency budget
- Map critical events
- Select processing mode
- Canonicalise events
- Build state projection
- Update dependent features
- Trigger decision
- Isolate actions
- Reconcile, replay and monitor
An Event-Driven Risk Infrastructure Agent can diagnose flow without changing production
A controlled agent can monitor ingestion and consumer lag, compare source and canonical counts, identify backpressure and stale decision paths, compare batch with stream projections, trace material events to actions and surface latency-budget breaches by business impact.
Financial Data
Canonicalise source changes, preserve lineage and reconcile state.
Decision Automation
Connect material state changes to governed decisions and actions.
Credit Risk
Govern feature freshness, behavioural state and decision latency.
Continue with Point-in-Time Correct Features, Building a Credit Risk Feature Store, Point-in-Time Customer State Reconstruction, Event Time vs Processing Time vs Posting Time, Idempotency in Payment and Credit Event Processing, Why Batch Risk Is Becoming a Business Risk and The Hidden Infrastructure Debt of Modern Lending. Canonical event modelling, streaming early-warning features and backpressure recovery remain future research directions—not fabricated routes.