The default rate limiter backend: a node-local token bucket.
You get this without configuring anything. It allows a burst of up to :limit
calls and then paces the rest at one call per :per / :limit, refilling one
call at a time rather than handing out a fresh full burst at each window
boundary.
It is node-local: counters live in this node's memory, so N nodes running
the same service each enforce the limit separately and the external service can
see up to N times the configured rate. For a limit shared across a cluster, use
ExternalService.RateLimiter.Hammer.
State is a single :atomics slot per service, so this backend needs no owning
process, no supervision tree, and no dependency.