Tech Stack
Core Technology
- Node.js: The runtime for the Redwood backend services
- TypeScript: The language used for the Redwood backend services
- Docker: The containerization system for reproducible microservice environments
- Kubernetes aka K8s: Container orchestration and scheduling
- Open Match: The matchmaking system used by Redwood
- Agones: An extension to Kubernetes that assists with deploying and scaling game server pods in a Kuberentes cluster based on demand
- PostgreSQL: Relational database used by Redwood
- SQLite: PostgreSQL doesn't work in Windows, so we substitute it with SQLite when testing locally without Kubernetes for faster development iteration cycles
- SocketIO: The network layer used for connections with any of the Node.js services
- Redis: Used for data that needs to support horizontal scaling as well as provide a pub/sub broker between frontend and backend services
- Custom stub: Redis doesn't work Windows, so Redwood provides a custom pure-JS Singleton/single-process stub for the Redis API for testing and most development cases.
- Memurai: For advanced Windows-only dev environments where the stub doesn't workout Redis, Memurai is a full replacement for Redis.
- ejabberd: For Text Chat support
Supported Third Party Services
- Transactional Email: for email verification, game news, relevant game events, etc.
- Secrets: for storing configuration secrets