Service Catalog
Status
Active
Date
2026-04-28
Owners
- Platform Backend
Last Verified Commit
56362a7a
Runtime Services
| Service | Runtime Type | Primary Purpose | Main Entry Surface | Background Work | Current Cutover Posture |
|---|---|---|---|---|---|
gateway | API | Player HTTP edge and legacy payload translation | root paths and /api/v1/* for players | none | player-facing cutover candidate |
player_service | API + worker | player auth, profile, messages, common/public data | /internal/players/*, /internal/common/* | outbox publishing in player_worker | supports gateway cutover |
wallet_service | API + worker | balances, deposits, withdrawals, approved finance events | /internal/wallet/* | outbox publishing + hourly ledger-vs-balance reconciliation in wallet_worker | single money writer; central dependency |
game_service | API | provider callbacks and integration tools | provider callback prefixes and /integration/* | none | provider-cutover candidate |
rolling_service | API + worker | rolling records, completion, cancel, expiry, retry | /internal/rolling/* | wallet-event consumer, outbox, expiry, retry | internal domain runtime ready |
promotion_service | API + worker | coupons, rebate/lossback config, settlement orchestration | /internal/promotions/* | wallet-event consumer, settlement scheduler, saga recovery | internal domain runtime ready |
agent_service | API + worker | agent portal APIs and legacy compatibility aliases | /api/v1/* agent-facing surface | outbox publishing in agent_worker | agent cutover candidate |
admin_service | API + worker | back-office edge, top-info websocket, operational APIs | /api/v1/*, /ws, /internal/meta/* | scheduler in admin_worker | core admin ready, not full middle_server replacement |
recon_service | API + worker | SMS automation and reconciliation domain | /internal/recon/* via admin edge | Pushbullet/Telegram/parse/match worker loops | recon cutover candidate |
Legacy Runtime Still Relevant During Migration
| Legacy Service | Why It Still Matters |
|---|---|
web_server | compatibility baseline for player-facing route parity |
agent_server | compatibility baseline for agent-facing route parity |
game_server | compatibility baseline for callback surface parity |
middle_server | still owns non-recon legacy back-office modules not yet fully represented in servers_v2 |
Multi-Brand Notes
Per ADR-009:
admin_serviceadditionally owns thebrandcatalog,brand_configper-brand configuration, andagent_brandallow-list write surface.admin_serviceno longer carries staff identity logic. Thelegacy_admin_v2.py,legacy_auth.py,legacy_agents_v2.py,legacy_agent_withdrawals_v2.py,legacy_meta_v2.py,legacy_recon.py, andlegacy_web_content.pyroute files are deleted; their/api/admin/*route families return404.- Every service runtime resolves brand from
X-Brand-Id(forwarded by the edge service that resolved the brand from the request domain) or from JWT, and scopes its writes bybrand_id.
Shared Infrastructure
Every runtime service currently depends on some combination of:
- PostgreSQL
- Redis
- shared contracts in
servers_v2/shared/contracts - shared database runtime and migrations in
servers_v2/shared/rgb_db
Supporting Evidence
- local stack contract:
servers_v2/tests/test_compose_contract.py - service route registration:
servers_v2/*/app/api/routes/api.py - worker runtime entrypoints:
servers_v2/*/worker.py