adutra opened a new pull request, #3506:
URL: https://github.com/apache/polaris/pull/3506
This change replaces the custom rate limiter implementation with the Quarkus
Bucket4J extension, which provides a more robust and well-tested rate limiting
solution.
The `RateLimiter` interface is preserved (since it might be an "extension
point"), and the default implementation (`RealmTokenBucketRateLimiter`) now
delegates to Bucket4J via a `@RateLimited` annotated method with per-realm
segmentation.
Key changes:
- Add quarkus-bucket4j dependency to gradle/libs.versions.toml
- Create `RealmIdentityResolver` for per-realm rate limit segmentation
- Rewrite `RealmTokenBucketRateLimiter` to use Bucket4J via self-injection
- Add 'enabled' flag to `RateLimiterFilterConfiguration`
- Update configuration to use Bucket4J properties:
- `quarkus.rate-limiter.buckets.polaris.limits[0].permitted-uses`
- `quarkus.rate-limiter.buckets.polaris.limits[0].period`
- Update Helm chart with simplified configuration
<!--
๐ Describe what changes you're proposing, especially breaking or user-facing
changes.
๐ See https://github.com/apache/polaris/blob/main/CONTRIBUTING.md for more.
-->
## Checklist
- [ ] ๐ก๏ธ Don't disclose security issues! (contact [email protected])
- [ ] ๐ Clearly explained why the changes are needed, or linked related
issues: Fixes #
- [ ] ๐งช Added/updated tests with good coverage, or manually tested (and
explained how)
- [ ] ๐ก Added comments for complex logic
- [ ] ๐งพ Updated `CHANGELOG.md` (if needed)
- [ ] ๐ Updated documentation in `site/content/in-dev/unreleased` (if needed)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]