Why orchestration
Each match needs a fresh dedicated server process to run the authoritative simulation. Player demand swings wildly by hour and region, so you cannot keep a fixed fleet running. Orchestration allocates servers when matches form and reclaims them when matches end.
Allocation flow
- A fleet of game server processes runs across a cluster, each in one of three states: ready, allocated, or shutting down.
- When the matchmaker has a match, it asks the allocator for a ready server, which transitions to allocated and receives the player roster.
- When the match ends the process exits and the slot returns to the ready pool or is replaced.
A controller keeps a buffer of ready servers so allocation is instant rather than waiting for a cold start. Open source systems like Agones model exactly this lifecycle on a container platform.
Scaling and bin packing
The autoscaler watches the ready buffer and adds or removes nodes to keep it sized. Because each server is short lived and stateful only for its match, the scheduler can bin pack many processes per node, then drain nodes gracefully once their matches finish.
Key idea
Orchestration keeps a buffer of ready dedicated servers, allocates one per match, and reclaims it on completion while autoscaling the underlying fleet.