# About Pools

A pool lets you control how many of a chosen group of workflow attempts can run in a Treasure AI account at the same time, independently of other workflows. Each pool has its own name and concurrency limit. By creating multiple pools and writing pool rules, an account administrator can guarantee that one group of workflows cannot consume every attempt slot in the account and starve other workflows.

Every account starts with a single **default pool** that holds the account's full concurrency limit. When you create additional pools, the default pool's concurrency limit is reduced by the new pools' concurrency limits. Each pool has its own concurrency limit and its own queue.

Administrator only
Pools are configured through the Treasure Workflow API and require administrator permissions. No Data Workbench UI is provided.

## How an attempt is assigned to a pool

When an attempt is created, Treasure Workflow picks a pool by evaluating the account's pool rules in priority order, lowest value first. The first rule whose conditions all match wins, and the attempt is assigned to that rule's pool. If no rule matches, the attempt goes to the default pool. Once assigned, an attempt stays in its pool until it finishes, even if you change the rules later.


```mermaid
flowchart LR
  A[Attempt created] --> R{Match a<br/>pool rule?}
  R -- yes --> P1[Assigned to<br/>rule's pool]
  R -- no --> P0[Assigned to<br/>default pool]
  P1 --> C{Pool slot<br/>available?}
  P0 --> C
  C -- yes --> RUN[Attempt runs]
  C -- no, queueing allowed --> Q[Attempt queued]
  C -- no, queueing disallowed --> F[Attempt creation fails]
  Q --> RUN
```

When a pool's concurrency limit is reached, new attempts are queued or rejected depending on how they were created. See [Attempt queueing](/products/customer-data-platform/data-workbench/workflows/pool/attempt-queueing) for the full matrix.

## What you will set up

To start using pools, perform these tasks in order:

1. [Manage pools](/products/customer-data-platform/data-workbench/workflows/pool/managing-pools): create, update, and delete pools and learn how the default pool's limit is adjusted automatically.
2. [Manage pool rules](/products/customer-data-platform/data-workbench/workflows/pool/managing-pool-rules): write the rules that decide which pool each attempt is assigned to.
3. [Understand attempt queueing](/products/customer-data-platform/data-workbench/workflows/pool/attempt-queueing): learn when an attempt is queued versus rejected when a pool is full.
4. Review [pool use cases](/products/customer-data-platform/data-workbench/workflows/pool/use-cases) for two worked examples.


## Limits

See [Treasure Workflow Prerequisites and Limitations](/requirements-and-limitations/treasure-workflow-prerequisites-and-limitations) for the maximum number of pools, pool rules, waiting attempts per pool, and the account's total concurrency limit.

## Related concepts

- [Treasure Workflow terms and concepts](/products/customer-data-platform/data-workbench/workflows/treasure-workflow-terms-and-concepts)
- [Attempt queueing](/products/customer-data-platform/data-workbench/workflows/pool/attempt-queueing)