# Admission control protects recovery

Principle `admission-controls-new-work`. Refuse or defer work that cannot be served usefully under current load.

Also searched as: admission control, load shedding, handshaking.

A busy service needs a way to reject incoming work. Callers must respect its signal instead of immediately amplifying the same overload.

Book basis: [B4](/bibliography#b4-release-it), [B12](/bibliography#b12-site-reliability-engineering).

## Failure it prevents

An overloaded service keeps accepting work and extends its own outage.

## Our Effect 4.0.5 reading

Queue and Semaphore offer local capacity controls. They do not choose the ingress response or implement caller cooperation. Model overload modes explicitly when needed.

Source: `packages/effect/src/Queue.ts`, `packages/effect/src/Semaphore.ts`.

## How to check

Exceed capacity. Observe a truthful refusal or durable deferral, bounded backlog, and recovery after demand falls. This is our proposed verification, not a quoted procedure.

Continue with [Retry load needs a budget](/principles/retry-load-needs-a-budget), [Backpressure reaches the producer](/principles/backpressure-reaches-the-producer).

Connect this to [the existing rat-stack guidance](https://ratstack.sh/lore/concurrent-work-needs-an-owner).

Use [the durability skill](/skills/durability) for the full review. Return to [the durability index](/principles/durability).

## Skills
- [Durability starts with a recovery record](/principles/durability)

## Sources
- Nygard, Michael T. *Release It!: Design and Deploy Production-Ready Software*. Pragmatic Bookshelf, 2007. [Link](https://archive.org/details/releaseitdesignd0000nyga). ([b4-release-it](/bibliography#b4-release-it))
- Beyer, Betsy; Jones, Chris; Petoff, Jennifer; Murphy, Niall Richard, editors. *Site Reliability Engineering: How Google Runs Production Systems*. O’Reilly, 2016. [Link](https://sre.google/sre-book/table-of-contents/). ([b12-site-reliability-engineering](/bibliography#b12-site-reliability-engineering))

## References
- [Effect contributors. Effect 4.0.5. Queue.ts](https://github.com/Effect-TS/effect/blob/7f524e25cfb49a71ac39b0f44278d08d40dda5de/packages/effect/src/Queue.ts). Pinned source for our Effect mapping, not a claim from the book.
- [Effect contributors. Effect 4.0.5. Semaphore.ts](https://github.com/Effect-TS/effect/blob/7f524e25cfb49a71ac39b0f44278d08d40dda5de/packages/effect/src/Semaphore.ts). Pinned source for our Effect mapping, not a claim from the book.
