DATABASE ADAPTER
PostgreSQL
Documented
A process-wide pg pool, generic queries, transactions, reconnect
with backoff, and health checks. Ambiguous failed writes are not
automatically retried.
Extension: player/domain repositories, versioned migrations, and
player persistence are not implemented.
DATA + COORDINATION
Redis
Documented
An application connection for commands and shared rate limits,
plus separate Colyseus Presence and Driver connections for room
discovery across instances.
Boundary: multi-instance foundations, not a measured capacity
guarantee. Realtime limits remain local.
EVENT PUBLISHER
RabbitMQ
Documented
A durable topic exchange and queue, persistent messages,
reconnect, and publisher confirms. The EventPublisher port
validates versioned JSON envelopes.
Extension: consumers, dead-letter topology, and a transactional
outbox are not implemented.
LOCAL ORCHESTRATION
Docker
Documented
Compose connects the server, map compiler, PostgreSQL, Redis,
RabbitMQ, and Nginx. The Dockerfile separates build,
development, and production stages.
Configuration: set service credentials and environment values
before running your own deployment.
HTTP + WEBSOCKET
Nginx
Documented
A reverse proxy with WebSocket upgrade, forwarded headers,
buffering disabled, and long-lived connection timeouts.
Configuration: proxy trust must match your deployment. HTTP and
WebSocket share the application server.
OBSERVABILITY + VALIDATION
Pino + Zod
Documented
Structured JSON logs, component loggers, HTTP request IDs, and
typed environment configuration. Invalid required settings stop
startup.
Scope: logging and validation primitives. No hosted monitoring
service is bundled.
Health checks
GET /api/health checks map readiness, PostgreSQL, Redis, and
RabbitMQ. It returns 200 only when all are ready; otherwise 503.
Graceful shutdown
The infrastructure lifecycle closes its RabbitMQ, application
Redis, and SQL resources. Colyseus owns the lifecycle of its
Presence and Driver connections.
Map compiler
Tiled collision rectangles become validated server JSON.
MOVEMENT_MODE and GRID_SIZE must match between compiler and
server.