Overview
A pool contains one or more models. When an agent puts the pool name in a request’smodel field, Dome orders the members according to the routing strategy. Dome sends the request to the first eligible member. If that attempt fails, Dome can try the remaining eligible members.
The typical workflow is:
- Connect the models that can serve the traffic.
- Create a pool.
- Add the models as members.
- Configure the pool’s routing strategy and failover.
- Attach the pool to a Gateway.
- Allow the Gateway on the agent.
- Verify the pool with that agent’s API key.
Members
Each member represents one model connection in the pool. With priority-weighted routing, the priority places the member in a failover tier. The weight determines how often Dome selects the member within that tier. Round-robin and least-loaded routing treat every member equally, so they ignore priority and weight. A model can belong to more than one pool. Removing a member changes only that pool and leaves the model connection available elsewhere.Routing strategies
The routing strategy chooses the primary model and orders any failover candidates.
Use
priority_weighted when some models should take traffic before others. Use round_robin or least_loaded when members are peers. The strategy_scope setting determines whether round-robin rotation and least-loaded request counts are shared across the workspace or tracked per agent. Priority-weighted routing does not use this setting.
You can choose a strategy when you create a pool or change it later.
Failover
The failover limit controls how many additional members Dome may try when the request to the primary member fails.
Dome authorizes the primary before sending the request. If the primary fails, Dome authorizes each remaining member before trying it and skips any member that rules deny. A streaming request can fail over only before Dome sends the first response data to the caller. An error after streaming begins terminates the response.
You can set failover when you create a pool or change it later.
Pool resolution
When a request reaches a Gateway, Dome resolves itsmodel value in this order:
- A pool with that exact name
- A direct model connection with that exact name
- A direct connection whose upstream model identifier matches
- The first pool in the configured order whose
match_whenpredicate matches - The workspace default pool
match_when condition can select a pool based on the request or verified identity (for example prompt_tokens.gt). The full match_when dialect is on the Pools reference. You can set a condition when you create a pool, change it later, and move the pool to control evaluation order.
Response caching
Pool records store a cache TTL and cache scope for reusing responses to identical requests.Requirements
Before you begin:- Authenticate to Dome and select a workspace
- Connect at least one model
- Have a Gateway ready when you want the pool reachable
Permissions
Pool operations require platform permissions. Each operation states its required permission inline.Create pool
Create a pool with a name that clients can put in the request’smodel field. A new pool has no members until you add them.
Requires
gateway.manage.- CLI
- MCP
- API
- Agent
0 and allows Dome to try every eligible member after a failure.Reference:
dome model pool createUpdate pool
Update a pool to change its name, description, routing strategy, conditional routing criteria, cache settings, or failover limit. Setting a different default pool and changing the order of conditional routes are separate operations.Requires
gateway.manage.- CLI
- MCP
- API
- Agent
Change routing
You can change how the pool selects its primary member. Refer to Routing strategies for when to use each strategy. When switching away from priority-weighted routing, existing priorities and weights remain stored but no longer affect selection.- CLI
- MCP
- API
- Agent
Reference:
dome model pool updateChange request routing
You can replace the conditions that select this pool during conditional routing. Send an emptymatch_when object to remove those conditions.
- CLI
- MCP
- API
- Agent
Reference:
dome model pool updateChange failover
You can change how many additional members Dome may try after the primary fails. Refer to Failover for limit values and streaming behavior. After setting a numeric limit, you can use the API to let Dome try every eligible member again.- CLI
- MCP
- API
- Agent
Reference:
dome model pool updateGet pool
Retrieve a pool with its routing configuration and members. Check this information before an update or when you need to determine which models can serve requests to the pool.Requires
gateway.view.- CLI
- MCP
- API
- Agent
Reference:
dome model pool getList pools
Retrieve the pools in a workspace with their routing strategies, conditional routing criteria, and default status. Use the list to find a pool to inspect, reorder, update, or remove.Requires
gateway.view.- CLI
- MCP
- API
- Agent
Reference:
dome model pool listSet default pool
Set a pool as the workspace default. Dome uses the default only when a request does not match an exact model name, exact pool name, or conditional route. Setting a new default removes the previous default.Requires
gateway.manage.- CLI
- MCP
- API
- Agent
Reference:
dome model pool set-defaultMove pool
Move a conditional pool earlier or later in the order Dome checksmatch_when predicates. This order affects only conditional routing and does not change routes that use an exact model or pool name.
Requires
gateway.manage.- CLI
- MCP
- Agent
Manage members
Pool members are the model connections that Dome can select to serve requests to the pool.Add member
Add a model to a pool. For a priority-weighted pool, priority defaults to0 and weight defaults to 1. Round-robin and least-loaded pools reject explicit priority or weight values.
Requires
gateway.manage.- CLI
- MCP
- API
- Agent
Reference:
dome model pool member addList members
Retrieve the models in a pool with each member’s priority, weight, and storedenabled value.
Requires
gateway.view.- CLI
- MCP
- API
- Agent
Reference:
dome model pool member listUpdate member
Update the priority or weight of a member in a priority-weighted pool. To move a model to another pool, remove it from the current pool and add it to the destination pool.Requires
gateway.manage.- CLI
- MCP
- API
- Agent
Reference:
dome model pool member updateRemove member
Remove a model from a pool to stop the pool from sending requests to that model. Removing the member does not delete the model connection, so other pools and direct Gateway routes can still use it.Requires
gateway.manage.- CLI
- MCP
- API
- Agent
Reference:
dome model pool member rmRemove pool
Remove a pool to delete its routing configuration and memberships. Removing the pool does not delete its model connections.Requires
gateway.manage.- CLI
- MCP
- API
- Agent
Reference:
dome model pool rmAttach to a Gateway
Attach a pool to a Gateway so agents can request the pool by name at that gateway’s model endpoints. The attachment makes the pool reachable but does not authorize an agent to call it. The agent must allow the Gateway, and rules must permit both the pool and selected model.Requires
gateway.manage.- CLI
- MCP
- Agent
Reference:
dome model pool gateways addVerify pool
Call the pool through the Gateway with an agent API key. A successful response confirms the pool is reachable, rules permit the route, and at least one member can serve the request.OpenAI-compatible client
Next steps
- Pools concept for how routing and failover work and Pools reference for strategies and
match_when - Connect more models to add providers or failover capacity
- Manage membership and grants in Gateways
- Configure model and pool spend limits in Cost Quotas