Service catalog
The qualified production topology is defined indeploy/railway/topology.ts
and the JSON profiles under
deploy/railway.
Development normally uses one API, engine, and market-data replica; production replica counts are
shown below.
Application and projection services
API source:
apps/api. Indexer source:
apps/indexer. Market-data source:
apps/market-data.
Keeper roles
All roles use the keeper image and a distinct entrypoint. Signing roles share a two-key, role-specific pool across their replicas; transaction selection and nonces are serialized in PostgreSQL.
The source catalog and startup behavior live in
apps/keeper. ChainService rejects
functions outside the active role’s allowlist before simulation or broadcast. Readiness also checks
chain identity, deployment linkage, signer separation, balances, and exact on-chain role assignment.
Dependency rules
Scaling rules
- Add API replicas freely after validating shared quotas and realtime replay.
- Keep one Ponder writer per deployment schema. Scale query serving separately if needed.
- Signing-role replicas must share the exact reviewed role key pool; mismatches fail readiness.
- Revenue remains one replica because delay is acceptable.
- Auditor remains one replica and keyless.
- Scale a saturated worker only after proving PostgreSQL outbox uniqueness, signer-lane availability, and queue age rather than reacting to raw queue depth alone.