A separate plane for every product owner
Each product owner, a fund or provider, has its own database, Engines and Interface Manager. Control holds the rules, releases and routing table.

Each owner stands alone
Its own plane
An owner's people, money and ledger stay in its own plane. One owner's busy night is no delay for another.
Checked in the database
Every member-data write is checked against the owner's products. A row for any other owner is refused.
People kept to their owner
Each person's access is limited to their own owner, and the Engine enforces it.
Several Engines for each owner
An owner can run several copies of the same Engine, in separate roles for screens and big jobs. People keep working through End of Day and Periodic Reviews, and a lease hands a big job to another copy if one stops.
Rules in sealed releases
Rules are written in Control and sealed into a numbered release, approved by a named person.
Another owner, another plane
A new owner is added as another plane. Messages reach it by fund identifier, through the routing table.
What we chose, and why
A database per owner
Rather than one database with a tenant column, so each owner's data is kept apart and capacity is added by owner.
Money records are added
Holdings and journals are added, not updated in place, which keeps a full audit trail and correct balances on any past date.
Prepared balances
Balances and stored totals are prepared ahead, and are proved against the journals rather than trusted.
Exceptions go to a person
A bad record raises an exception and a task, and the rest of the file carries on.
Talk to our architects
Walk through the design with the people who built it: the planes, the Engine and the release model.
