State model
A durable saga record owns step status, retries, deadlines, compensation and custody. Source systems retain legal business state.
A hedge may drift from policy because the underlying exposure changed, execution was partial or accounting designation no longer applies.
An exception controller reconciles exposure, hedge and designation state, classifies the break and proposes a policy-compliant resolution path.
Organisations, systems and operating conditions are intentionally anonymised and recomposed. The design demonstrates engineering and banking-domain reasoning; it does not represent a named client estate, vendor product or measured production result.
Typed commands, state changes and receipts cross an event spine without surrendering domain ownership.
Permitted workThe design may reconcile positions and simulate options. Booking, limit consumption, valuation approval and market action remain controlled systems and roles.
Consistency ruleUse event time, valuation time, legal-entity scope and source cut-offs; label forecast, pending and settled state separately.
Hard boundaryThe model is not a system of record, identity provider, policy authority or proof that an external effect occurred.
The journey can change account, payment, case or document state across systems that do not share one transaction boundary.
Trade proposals remain non-executable until limits, market conduct and human approval checks pass.
A deterministic outer workflow contains model-led work inside typed, observable calls. Dashed messages remain proposals until policy or a human grants authority.
A durable saga record owns step status, retries, deadlines, compensation and custody. Source systems retain legal business state.
Mutating calls pass through typed capability contracts. Events notify downstream services, but command acceptance and effect readback remain distinct.
Use idempotent local transactions and eventual cross-system consistency. Unknown outcome is a first-class state, not an exception hidden by retry.
These roles are deliberately vendor-neutral. Each can be independently owned, versioned and replaced.
Evaluates identity, purpose, capability, amount, risk tier and policy version; returns allow, deny, step-up or human-review with reasons.
Runs a versioned state machine with explicit waits, deadlines, retries, compensations, human tasks and terminal states.
Appends request, versions, policy result, model proposal, approval, action receipt, readback, correction and custody events under one correlation key.
Builds time-qualified projections from source events and reconciliations without becoming the legal system of record.
Durable records carry provenance, authority, effect and custody without turning a transcript into an uncontrolled memory store.
Use event time, valuation time, legal-entity scope and source cut-offs; label forecast, pending and settled state separately.
The selected design is not universally superior. It is the safer fit for this boundary and failure cost.
Compile stable decision logic and retain retrieval for explanation and residual ambiguity.
Ask a model to interpret the source document for every request.
Cost acceptedRule compilation needs controlled change, but creates repeatable decisions, regression tests and clear exceptions.
Keep consequential state transitions deterministic and use models inside bounded steps.
Let the model choose the complete path and recovery sequence.
Cost acceptedThe shell reduces flexibility, but makes deadlines, retries, permissions and recovery testable.
Use append-only events plus a rebuildable current-state projection.
Overwrite the case row with its latest status.
Cost acceptedReplay and storage are more complex, but point-in-time reconstruction and correction lineage remain possible.
Use event-fed projections for scale and direct readback for consequential effects.
Fan out to all systems of record for every interaction.
Cost acceptedRead models introduce lag and reconciliation work, but reduce source load and make cross-system views feasible.
Retries are bounded by knowledge of business effect; unknown outcome remains visible, owned and independently reconciled.
Actual thresholds belong to accountable service owners. The design exposes the equations and observables that those owners must baseline.
peak_action_rate = requests_per_second x steps_per_requestreconciliation_load = timed_out_actions + mismatched_readbacksrecovery_capacity = open_unknown_outcomes / owner_resolution_rateRestrict sensitive position and counterparty data to entitled desks and exclude it from reusable prompts or broad telemetry.
A design is production-ready only when teams can prove what happened, recover it and change it safely.
late market or position event test
limit breach under stale data test
valuation-source reconciliation
dual-authorisation and booking readback
Exposure lineage, hedge linkage, policy version, break cause, proposed action, approval and trade readback.
Treasury and risk jointly authorise the resolution.
Automate reversible steps first. Expand authority only after duplicate, timeout, compensation and operator-recovery tests pass under peak load.
Treasury or desk, market risk, operations, finance and technology owners accept the design.