A concurrency limiter. Limits the number of concurrent invocations possible, without using a worker pool or different processes.
- It can be useful in cases where you don't need a worker pool but still being able to limit concurrent calls without much overhead. As it internally uses `persistent_term` to store metadata, and can fallback to ETS tables, it is however not made for a large number of limiters and cannot be used for things like a per-user rate limiter.
-
- It supports two storage methods:
-
- * **[atomics](https://erlang.org/doc/man/atomics.html)** recommended and default if your OTP is > 21.2.
- * **[ets](https://erlang.org/doc/man/ets.html)** either with a single table per limiter (faster) or a shared table.
-
- You would almost always want to use atomics, ets is mostly there for backwards compatibility.
+ It can be useful in cases where you don't need a worker pool but still being able to limit concurrent calls without much overhead.
+ As it internally uses `persistent_term` to store metadata, and can fallback to ETS tables, it is however not made for a large number
+ of limiters and cannot be used for things like a per-user rate limiter.