Core Banking Platform¶
| System ID | SD01 |
| Repo | bank-core |
| Business domain | BD02 |
| Tech owner | Platform Engineering |
| Build status | Not started |
The operational heart of the bank — real-time ledger, account management, interest engine, and transaction processing. Built on Postgres as the OLTP store with event streaming to Kafka.
Modules¶
| ID | Name | Status | ADR |
|---|---|---|---|
| MOD-001 | Double-entry posting engine | Not started | ADR-001 |
| MOD-002 | Immutable transaction log | Not started | ADR-001 |
| MOD-003 | Real-time balance engine | Not started | ADR-001 |
| MOD-004 | Multi-currency ledger (NZD/AUD) | Not started | ADR-015 |
| MOD-005 | Daily accrual calculator | Not started | ADR-001 |
| MOD-006 | Rate change propagation | Not started | — |
| MOD-007 | Account state machine | Not started | — |
| MOD-008 | Dormancy & escheatment engine | Not started | — |
For full module specifications and acceptance criteria, see module specifications.
Architecture¶
See ADR-001 for the full Postgres-as-OLTP decision and the API + write-back architecture.
Critical constraints¶
ledger_entriestable is append-only — enforced by database trigger. Corrections via reversal entries only.- Balance checks for payment authorisation must read from this system — never from Snowflake.
- Interest accrual must complete for all accounts by 23:59 daily (NFR-006).
- Multi-currency postings must be atomic — both legs of a NZD/AUD conversion post in a single transaction.
Modules¶
| Module | Name | Status | Policies |
|---|---|---|---|
| MOD-001 | Double-entry posting engine | Deployed | CLQ-006 · REP-004 · PAY-001 · CLQ-002 · PAY-007 · OPS-007 |
| MOD-002 | Immutable transaction log | Deployed | GOV-006 · REP-005 · AML-005 · PAY-002 · PAY-007 |
| MOD-003 | Real-time balance engine | Deployed | CLQ-002 · PAY-001 · CON-005 · CLQ-004 |
| MOD-004 | Multi-currency ledger (NZD/AUD) | Deployed | PAY-004 · CLQ-001 · AML-008 · REP-002 |
| MOD-005 | Daily accrual calculator | Deployed | REP-004 · CON-005 · CLQ-004 · CRE-006 |
| MOD-006 | Rate change propagation | Deployed | CON-005 · CON-004 · CLQ-004 |
| MOD-007 | Account state machine | Deployed | AML-002 · AML-007 · PAY-005 |
| MOD-008 | Dormancy & escheatment engine | Deployed | CON-001 · REP-001 |
| MOD-110 | Fee engine | Deployed | CON-005 · CON-004 · PAY-001 |
| MOD-111 | Term deposit maturity engine | Deployed | CON-004 · CON-005 · PAY-001 |
| MOD-112 | Amortisation schedule engine | Deployed | CRE-002 · CON-004 · CON-005 |
| MOD-118 | Member equity and share registry | Deployed | CLQ-001 · GOV-001 · CON-001 · CON-004 |
| MOD-125 | Joint account management | Deployed | AML-002 · CON-001 · PRI-001 · REP-007 |
| MOD-130 | Notice account management | Deployed | CON-005 · CLQ-002 · CON-001 · CON-004 |
| MOD-133 | Trust account management | Deployed | AML-002 · AML-004 · PRI-001 · GOV-006 |
| MOD-134 | Community account management | Deployed | AML-002 · CON-001 · GOV-006 · PRI-001 |
| MOD-140 | Chart of accounts and GL configuration | Deployed | REP-004 · GOV-006 · REP-002 · GOV-007 |
| MOD-143 | Open Bank Resolution pre-positioning | Deployed | REP-001 · OPS-001 |
| MOD-161 | Transfer pricing | Deployed | CLQ-002 · CLQ-003 |
| MOD-166 | Transaction category corrections | Deployed |
Compiled 2026-05-22 from source/entities/system-domains/SD01.yaml