# `DripDrop.Dispatch.Concurrency`
[🔗](https://github.com/agoodway/dripdrop/blob/v0.1.0/lib/dripdrop/dispatch/concurrency.ex#L1)

Limits in-flight dispatches by channel and adapter.

The gate is intentionally database-backed so all worker runtimes see the same
concurrency counts. Advisory transaction locks serialize cap checks per scope,
and hits defer the execution instead of failing it.

# `check`

```elixir
@spec check(map(), map()) :: :ok | {:defer, DateTime.t(), map()} | {:error, term()}
```

Checks configured concurrency caps for the dispatch context and adapter.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
