Service Inventory
All services verified at commit 4b572c2. Port numbers, frameworks, and health check endpoints confirmed from Dockerfiles and source code.
Backend Services
API Gateway
- Package:
@elysium/api-gateway - Path:
services/api-gateway/ - Framework: Express 5.0.1 + Apollo Server 4.9.5
- Port: 8080
- Health: GET
/health(full dependency check), GET/health/ready(database probe) - Role: Primary entry point for all client requests. Exposes GraphQL API and REST endpoints. Proxies internal service calls with HMAC signing and circuit breakers.
Insights Service
- Package:
@elysium/insights-service - Path:
services/insights-service/ - Framework: Express 5.0.1
- Port: 3005
- Health: GET
/health - Role: Core analytical engine. Calculates BHI, fraud signals, risk scores, NBA recommendations, Markov credit models, cashflow forecasts. Runs background cron jobs for retention purge, health checks, usage digests, GDPR DSR processing.
Unified Data Service
- Package:
@elysium/unified-data-service - Path:
services/unified-data-service/ - Framework: Express 5.0.1
- Port: 4001
- Health: GET
/health - Role: Data aggregation and normalization. Manages customer, account, and transaction imports from external connectors. Handles CSV upload with bank presets (GCB, Ecobank, Stanbic, ARB Apex). Publishes sync lifecycle events.
Workflow Engine
- Package:
@elysium/workflow-engine - Path:
services/workflow-engine/ - Framework: Express 5.0.1
- Port: 8080
- Health: GET
/health - Role: Executes configurable multi-step workflows. Loads pre-defined templates at startup. Manages workflow definitions, runs, and steps with durable execution.
Agent Orchestrator
- Package:
@elysium/agent-orchestrator - Path:
services/agent-orchestrator/ - Framework: Express 5.0.1
- Port: 8080
- Health: GET
/api/v1/agent/health - Role: AI-powered task execution via ReAct loop. Manages concurrent tasks with configurable limits. Provides case copilot and workflow builder capabilities.
Sanitization Service
- Package:
@elysium/sanitization-service - Path:
services/sanitization-service/ - Framework: Express 5.0.1
- Port: 3004
- Health: GET
/health - Role: PII redaction and data sanitization before AI processing. Supports batch sanitization (up to 1000 records), configurable policies, and strict compliance mode.
ML Service
- Package:
ml-service - Path:
services/ml-service/ - Framework: FastAPI 0.109.2 (Python 3.11)
- Port: 8080
- Health: GET
/health, GET/ready - Role: ML inference endpoints for BHI scoring, cashflow forecasting, and NBA re-ranking. Supports multiple ML backends with automatic fallback.
Admin Jobs
- Package:
@elysium/admin-jobs - Path:
services/admin-jobs/ - Framework: Node.js CLI (no HTTP server)
- Port: N/A
- Health: N/A
- Role: Cloud Run Job for API key provisioning. Runs
create-api-keyorensure-api-keysoperations.
Frontend Applications
Admin UI
- Package:
@elysium/admin-ui - Path:
apps/admin-ui/ - Framework: React 18.2 + Vite 5.0.7, served via Nginx
- Port: 8080
- Role: Dashboard for tenant administrators. Apollo Client for GraphQL, React Query for data caching, Recharts for visualization, i18next for internationalization.
Marketing Site
- Package:
@elysium/marketing - Path:
apps/marketing/ - Framework: React 18.2 + Vite 5.0.7, served via Nginx with Puppeteer prerendering
- Port: 8080
- Role: Public marketing site with SEO prerendering.
Shared Packages
| Package | Path | Purpose |
|---|---|---|
@elysium/service-bootstrap |
packages/service-bootstrap/ |
Service factory: logging, tracing, auth, DB, CORS, rate limiting, health, graceful shutdown |
@elysium/database |
packages/database/ |
PostgreSQL client, Drizzle ORM schema, repositories, migrations, RLS |
@elysium/logger |
packages/logger/ |
Structured logging via pino |
@elysium/auth |
packages/auth/ |
API key validation, JWT, RBAC, cookie auth, key expiry |
@elysium/security |
packages/security/ |
Encryption (libsodium), HMAC, PII sanitization, circuit breaker, idempotency |
@elysium/audit |
packages/audit/ |
Audit logging, tamper-evidence, retention policies |
@elysium/event-bus |
packages/event-bus/ |
Event pub/sub (in-memory, PostgreSQL, Pub/Sub backends) |
@elysium/shared-types |
packages/shared-types/ |
TypeScript types, entities, event definitions |
@elysium/telemetry |
packages/telemetry/ |
OpenTelemetry tracing, Prometheus metrics |
@elysium/job-queue |
packages/job-queue/ |
Redis-backed async job queue (BullMQ) |
@elysium/llm-clients |
packages/llm-clients/ |
LLM client abstraction |
@elysium/resilience |
packages/resilience/ |
HTTP timeout, circuit breaker, retry |
@elysium/connectors |
packages/connectors/ |
External data source adapters |
@elysium/feature-flags |
packages/feature-flags/ |
Runtime feature flag client |
@elysium/providers |
packages/providers/ |
KYC, sanctions, PEP, registry provider abstraction |
@elysium/agent-tools |
packages/agent-tools/ |
Agent tool registry and implementations |
@elysium/workflow-dsl |
packages/workflow-dsl/ |
Workflow DSL parser, validator, condition evaluator |
All packages are ESM ("type": "module") and use workspace:* resolution via pnpm.