Skip to content

Add possibility to extend existing rate limiter implementations #204

@FD-YTD

Description

@FD-YTD

Hi

The current rate limiter implementations (fixed window, sliding window, and token bucket) are not easily extensible at the moment.
For example, I’d like to add metadata indicating the available retry delay. While such information technically exists, it doesn’t align with what the Polly library expects when constructing its exceptions (https://github.com/App-vNext/Polly/blob/main/src/Polly.RateLimiting/RateLimiterResilienceStrategy.cs#L55). Specifically, the type used differs: TimeSpan is expected, but an int is currently provided.
Right now, to support this, we have to duplicate the entire Redis fixed window limiter implementation, which is far from ideal.
It would be extremely helpful if there were extension points available to inject custom metadata, or if the limiter code were more open to customization - e.g., by making certain methods and types non-internal or non-private.
Do you think such changes could be considered?
I’d be happy to submit a PR with a proposal.
Best regards.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions