Pool Servers
Pool servers are pre-provisioned game servers that sit warm and ready to be claimed instantly. Instead of waiting 15-30 seconds for a server to launch on demand, you can claim a pool server and get connection details in milliseconds. This makes pool servers the ideal choice for competitive matchmaking and any game where launch latency matters.How Pool Servers Work
Configure your pool
In your project settings, you define which regions and compute sizes you want pre-provisioned, and how many servers to keep warm in each.
PlayFlow provisions servers
PlayFlow automatically launches and maintains the configured number of idle servers. These servers are running and ready to accept players, but are not yet assigned to any game session.
Claim a server
When your game needs a server (for example, when matchmaking finds a match), you claim a pool server via the API. The claimed server becomes yours instantly — you receive its connection details in the response.
Pool servers use the same infrastructure and runtime environment as on-demand servers. The only difference is that they are pre-launched and waiting, so there is no cold-start delay when you need one.
Configuring Your Pool
You can configure pool servers through the project dashboard or the API.Dashboard Configuration
Navigate to your project’s Settings page in the PlayFlow dashboard. Under the pool configuration section, enable the pool and specify the number of servers to keep warm per region and compute size.API Configuration
Use the project settings endpoint to configure your pool programmatically:Configuration Reference
Thepool_config object has the following structure:
| Field | Type | Description |
|---|---|---|
enabled | boolean | Whether pool provisioning is active for this project. |
regions | object | A map of region IDs to compute size configurations. |
regions.<region_id> | object | A map of compute size names to the number of servers to keep warm. |
- Single Region
- Multi-Region
- Disable Pool
Keep 3 small servers warm in US East:
Claiming a Pool Server
When your game needs a server, start one as you normally would viaPOST /api/v3/servers/start. If a matching pool server is available in the requested region and compute size, PlayFlow assigns it instantly rather than launching a new machine.
- The
pool_claimed_attimestamp is set on the server record - The server appears in your server list with
is_pool_server: true - You receive the server’s connection details (IP, ports) immediately in the response
If no pool server is available in the requested region and size, PlayFlow falls back to launching a new server on demand. Your game logic does not need to handle this distinction — the API response format is the same either way.
Identifying Pool Servers
Pool servers are visible in the server list alongside on-demand servers. You can identify them by theis_pool_server field:
| Field | Description |
|---|---|
is_pool_server | true for servers provisioned by the pool system. |
pool_claimed_at | Timestamp when the server was claimed. null if the server is still idle and unclaimed. |
Billing
Pool servers use a split billing model that reduces costs while servers are idle.| State | Rate | Description |
|---|---|---|
| Unclaimed (idle) | 30% discount | Pool servers waiting to be claimed are billed at 70% of the standard rate. |
| Claimed (active) | Standard rate | Once claimed, servers switch to the normal per-second billing rate for their compute size. |
Limits
- Maximum 10 servers per region per compute size in the pool configuration
- Pool reconciliation runs automatically approximately every 5 minutes to provision or remove servers to match the target count
- Pool servers follow the same plan limits as on-demand servers (Free plan: max 1 active server; Pro plan: unlimited servers)
When to Use Pool Servers
- Good Fit
- May Not Need
- Competitive matchmaking where sub-second server availability is critical
- High-traffic games with frequent match starts and predictable demand
- Tournament or event systems where matches need to start immediately
- Games with short session times where launch latency is a significant fraction of playtime