State model
Shared case state uses explicit field ownership. Specialist private state remains local; only contract-approved facts, summaries and open work may be promoted.
During an incident, signals, hypotheses, mitigations and ownership change quickly, while retrospective records are often incomplete.
The system builds an event-sourced timeline that separates observation, hypothesis, authorisation, action and verified effect across teams.
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 system may correlate events and propose recovery. Production change, privileged access and incident command remain controlled human authorities.
Consistency ruleCorrelate telemetry by service, version, environment and event time; configuration inventory is qualified, not assumed current.
Hard boundaryThe model is not a system of record, identity provider, policy authority or proof that an external effect occurred.
Several specialist capabilities contribute to one journey while the customer should experience one conversation and one accountable owner.
The assistant cannot execute remediation or rewrite historic state; late evidence is appended with its observation time.
A deterministic outer workflow contains model-led work inside typed, observable calls. Dashed messages remain proposals until policy or a human grants authority.
Shared case state uses explicit field ownership. Specialist private state remains local; only contract-approved facts, summaries and open work may be promoted.
Use versioned request, response, error and artefact envelopes. Every edge declares caller, represented subject, purpose, expiry and allowed capability.
One writer owns each shared field. Parallel branches return proposals that the orchestrator merges through deterministic conflict rules.
These roles are deliberately vendor-neutral. Each can be independently owned, versioned and replaced.
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.
Classifies unknown outcomes, replays idempotent work, runs compensations and restores from the last verified checkpoint.
Builds time-qualified projections from source events and reconciliations without becoming the legal system of record.
Evaluates identity, purpose, capability, amount, risk tier and policy version; returns allow, deny, step-up or human-review with reasons.
Durable records carry provenance, authority, effect and custody without turning a transcript into an uncontrolled memory store.
Correlate telemetry by service, version, environment and event time; configuration inventory is qualified, not assumed current.
The selected design is not universally superior. It is the safer fit for this boundary and failure cost.
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 local commits, idempotent steps, compensations and an unknown-outcome state.
Attempt one atomic transaction across independent banking systems.
Cost acceptedSagas expose temporary inconsistency and require recovery logic, but fit systems that cannot share one transaction boundary.
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.
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.
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.
downstream_calls = routed_turns x average_branch_fanoutp95_route = classifier + max(parallel_branches) + merge + validationreview_load = ambiguous_routes + rejected_handoffs + policy_stepupsRedact secrets and customer payloads from traces while retaining identity, change and evidence metadata.
A design is production-ready only when teams can prove what happened, recover it and change it safely.
failure injection and blast-radius test
rollback and schema compatibility
privileged-action approval
incident timeline reconstruction
Event sources, clock offsets, decisions, approvals, action receipts, readbacks, hand-offs and recovery confirmation.
The incident commander owns priorities, risk acceptance and service restoration.
Begin with deterministic routing and explicit handoff. Add dynamic selection and parallel delegation only after edge contracts, loop tests and shared-state ownership are proven.
Service, SRE, security, change, architecture and business-continuity owners accept recovery choices.