# Share one origin across several pools

## Problem

Interactive, batch, and partner traffic hit the same origin. Separate pool
concurrency limits drift. You need one origin concurrency limit, pinned
reservations for fairness, and unreserved slots that follow load.

## Fix

1. Open **Capacity** and create a budget for the shared concurrency limit.
2. Set the **shared concurrency limit** to the most the upstream can take in
   flight across every caller.
3. Attach the pools that share that origin. Give each a **reserved** floor
   (for example interactive 4, batch 2 on a concurrency limit of 10).
4. Choose **Auto** balancing (Business). Fixed caps each pool at its allocation.
   Auto keeps each pin local and moves float toward load.
5. Watch the budget show page: float free and borrowed update as load shifts.
   The sum of in-flight work across members cannot exceed the shared concurrency
   limit.

Example on a concurrency limit of 10 with interactive reserved 4 and batch reserved 2:

- Float free starts at 4.
- When batch runs hot, it can borrow up to four float slots, subject to its
  member Max.
- Interactive always keeps its four pinned slots.

## When Fixed is enough

Stay on Fixed when every pool needs a predictable pinned cap and you do not
want slots to move. You still get one place to edit the shared concurrency
limit and allocations.

## Related

- [Capacity](/docs/capacity)
- [Balancing](/docs/capacity/balancing)
- [Why a pool borrowed slots](/docs/knowledge-base/capacity-borrow)
- [Proxy NetSuite under a concurrency limit](/docs/knowledge-base/netsuite-rest)
