Skip to content

Conversation

@henrybarreto
Copy link
Member

Currently, Nginx rate limiting provides global protection but lacks isolation between namespaces. When multiple namespaces make API requests simultaneously, they compete for the same global limit.

A token bucket implementation at the application level gives each namespace its own rate limit state. This means heavy traffic in one namespace won't affect others, allowing each to handle its own request patterns independently.

While Nginx's leaky bucket drains requests at a fixed rate, Go's token bucket works differently: it stores tokens in a burst buffer, consuming them when new requests arrive and replenishing them at the defined rate.

The idea of combining Nginx and a token bucket provides effective multi-layer protection: global traffic management at the edge, while maintaining precise per-namespace control at the application level.

@henrybarreto henrybarreto requested review from a team as code owners August 25, 2025 11:46
@henrybarreto henrybarreto self-assigned this Aug 25, 2025
Currently, Nginx rate limiting provides global protection but lacks
isolation between namespaces. When multiple namespaces make API requests
simultaneously, they compete for the same global limit.

A token bucket implementation at the application level gives each
namespace its own rate limit state. This means heavy traffic in one
namespace won't affect others, allowing each to handle its own request
patterns independently.

While Nginx's leaky bucket drains requests at a fixed rate, Go's token
bucket works differently: it stores tokens in a burst buffer, consuming
them when new requests arrive and replenishing them at the defined rate.

The idea of combining Nginx and a token bucket provides effective
multi-layer protection: global traffic management at the edge, while
maintaining precise per-namespace control at the application level.
@henrybarreto henrybarreto marked this pull request as draft October 28, 2025 16:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants