feat: implement pure probabilistic rate limiting #27
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Note
This PR was generated with Claude Code (https://claude.ai/code)
Summary
This PR implements pure probabilistic rate limiting to fix the "first request bypass" issue where the first request of each interval was always allowed through regardless of flow rate.
Key Changes
Pure Probabilistic Rate Limiting: Every request now has exactly
flowRate%chance of being allowedUpgraded to math/rand/v2: Better performance and concurrency
Updated Tests: Added statistical tolerances for natural variance
Performance Impact
Benchmark comparison shows significant improvements with math/rand/v2:
Key Performance Wins:
Bug Fix
Previous behavior (bug):
New behavior (fixed):
Testing
TestFirstRequestRespectsFlowRatevalidates the fixBreaking Changes
None. The API remains unchanged. The only observable difference is that the first request of each interval is no longer guaranteed to be allowed (which was the bug being fixed).
🤖 Generated with Claude Code (https://claude.ai/code)