| Public API & domain services |
Authorization, validation, and the versioned contract your product integrates against. |
An operation that fails validation is rejected at the edge rather than partially applied. Each service holds its own schema and its own database credentials, so a bad migration or a compromised credential is bounded by the service it happened in. |
| Investment Ledger |
Effective ownership: lots, FIFO consumption, lineage, reallocations, redemptions. |
Ownership arithmetic runs inside database transactions with row-level locking, so concurrent transfers serialize instead of interleaving. A crash mid-operation rolls back rather than leaving a half-consumed lot. |
| Eligibility & compliance |
Who may hold, enforced by the registry the token reads inside every transfer. |
The check sits in the transfer path, not in front of it, so an off-chain outage cannot let an ineligible transfer through. A token with no list attached moves nothing at all. |
| Transaction Engine |
Durable queue, signing workflow, nonce and fee strategy, submission, replacement, confirmation. |
Request state is durable before anything is signed, so a worker that dies mid-flight resumes from the record rather than losing or re-issuing the instruction. A stuck transaction is replaced on the same nonce, never duplicated onto a new one. |
| Indexing Engine |
Block and event ingestion, normalization, reorg handling, backfill and recovery. |
Provider degradation slows ingestion rather than corrupting it: the head position is checkpointed, gaps are backfilled on recovery, and a reorg rolls derived events back instead of leaving state asserted that the chain no longer agrees with. |
| Chain & custody adapters |
Encoding, signature assembly and chain-specific behavior, behind one interface. |
Chain and RPC responses are treated as untrusted input, decoded and validated at a single boundary. Past that boundary the invariants are carried in types, so a malformed payload is a rejected message rather than a bad settlement. |
| Token contracts |
Settlement: mint, burn, freeze, forced transfer, roles, and transfer restriction. |
A transfer either meets the contract's conditions or reverts — there is no partial settlement. Upgrade authority sits on the beacon and is held by you, so no Tokenistry release can change a deployed token. |
| Persistence |
Single source of truth for ledger, queue and permission state, in your PostgreSQL instance. |
Your database, your backups, your retention policy and your restore drill. Migrations ship with the image version that requires them, so schema and code move together. |
| Packaging & deployment |
Container images, versioned migrations, Helm charts and Terraform modules. |
A deployment is reproducible from a pinned image digest, which makes a rollback a redeploy of the previous version rather than a reconstruction of an environment. |