Skip to main content

Tech Stack

Core Technology

  • NodeJS: 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 NodeJS 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.

Supported Third Party Services

  • Hathora: An alternative to self-hosting game servers with Agones; this is a 3rd party service for hosting on-demand, ephemeral game servers. You can easily support several regions without managing a Kuberentes cluster for each region. We use Hathora for our Redwood Gameplay Template demos!
  • SendGrid: A transactional email provider for email verification, game news, relevant game events, etc.
  • Idem: A matchmaking platform as a service that you can use instead of the OpenMatch integration.
  • HCP Vault: HashiCorp's managed service for Vault secrets for specifying secrets in the configuration.