Skip to content

ROWS

ROWS is a single-binary Rust reimplementation of the OWS (Open World Server) game backend. It consolidates the five .NET microservices (PublicAPI, InstanceManagement, CharacterPersistence, GlobalData, Management) into one unified service with both REST and gRPC interfaces.

  • REST API (Axum) — player-facing endpoints: login, registration, character CRUD, zone connections
  • gRPC (Tonic) — internal service-to-service communication and UE5 dedicated server coordination
  • RabbitMQ — async job queue for instance lifecycle events (spin-up, shutdown, health checks)
  • PostgreSQL — persistent storage for accounts, characters, abilities, world state
  • ValKey — session cache and ephemeral game state
  • Agones — game server fleet management for UE5 dedicated server instances
GroupPath PrefixDescription
Auth/api/users/*Login, register, session management
Characters/api/characters/*Character CRUD, class selection
Zones/api/zones/*Zone listing, server-to-connect-to
Instance/api/instance/*Server instance lifecycle
Global/api/global/*Key/value world state
Health/health, /readyLiveness and readiness probes
gRPCPort 50051Internal service mesh

ROWS deploys as a single Docker image (ghcr.io/kbve/rows) into the ows Kubernetes namespace alongside the existing .NET services. During the migration period, both stacks can run in parallel with traffic routing controlled via HTTPRoute rules.

The container exposes:

  • Port 4322 — REST API (Axum)
  • Port 50051 — gRPC (Tonic)