Service Map
Complete service catalog with ports, purposes, dependencies, databases, and health endpoints
Service Catalog
| # | Service | Port | Database | Purpose | Health Endpoint |
|---|---|---|---|---|---|
| 1 | backend | 8000 | appdb | Auth, Users, Tenants, RBAC, Billing | /api/v1/health/ |
| 2 | survey-service | 8001 | survey_db | Survey design, versioning, XLSForm | /api/v1/health |
| 3 | data-service | 8002 | data_db | Response storage, attachments, exports | /api/v1/health |
| 4 | sync-service | 8003 | sync_db | ODK device sync, conflict resolution | /api/v1/health |
| 5 | analytics-service | 8004 | analytics_db | Dashboards, reports, widgets | /api/v1/health |
| 6 | workspace-service | 8006 | workspace_db | Workspaces, projects, members | /api/v1/health |
| 7 | webhook-service | 8007 | webhook_db | Webhook subscriptions, deliveries | /api/v1/health |
| 8 | odk-bridge | 8009 | odk_db | ODK Aggregate compatibility | /health |
| 9 | form-service | 8010 | mquad_forms_db | Form rendering, validation, drafts | /health |
| 10 | media-service | 8011 | media_db | File upload, S3/MinIO storage | /api/v1/health |
| 11 | notification-service | 8012 | notification_db | Email/SMS/Slack notifications | /api/v1/health |
| 12 | audit-service | 8013 | audit_db | Audit logging, compliance | /api/v1/health |
| 13 | feature-flags-service | 8014 | feature_flags_db | Feature toggles, A/B testing | /api/v1/health/ |
| 14 | scalar-service | 8030 | — | API documentation aggregator | /health |
Removed Services: reporting-service (8005), search-service (8008), cron-service (8015).
Dependencies
Diagram source
graph LR
subgraph "Data Stores"
PG[(PostgreSQL)]
RD[(Redis)]
MN[(MinIO)]
end
Backend --> PG & RD
Survey --> PG & RD
Data --> PG & RD
Sync --> PG & RD
Analytics --> PG & RD
Workspace --> PG & RD
Webhook --> PG & RD
ODK --> PG & RD
Form --> PG & RD
Media --> PG & RD & MN
Notification --> PG & RD
Audit --> PG & RD
FeatureFlags --> PG & RD
Webhook -.-> Survey & Data
ODK -.-> Survey & Data
Form -.-> Survey & DataCelery Beat Schedulers
| Container | Service | Tasks |
|---|---|---|
backend-beat | backend | Check expired trials (hourly) |
notification-beat | notification-service | Retry failed notifications (every 2m) |
webhook-beat | webhook-service | Retry pending webhooks (every 1m) |
analytics-beat | analytics-service | Aggregate surveys (hourly), cleanup snapshots (daily 2AM), daily summary (midnight) |
Infrastructure Services
| Service | Image | Purpose |
|---|---|---|
| postgres | postgres:15 | Primary database (max 500 connections) |
| redis | redis:latest | Cache & Celery broker |
| minio | minio/minio | S3-compatible object storage |
| traefik | traefik:v3.0 | API gateway & reverse proxy |
| prometheus | prom/prometheus:v2.48.0 | Metrics collection |
| grafana | grafana/grafana:10.2.0 | Metrics visualization |
| loki | grafana/loki:2.9.0 | Log aggregation |
| jaeger | jaegertracing/all-in-one:1.52 | Distributed tracing |
| fake-smtp | jcalonso/mailhog:v1.0.1 | Email testing (SMTP) |
