App-vNext/Polly

[docs] Explain partition key

Closed this issue · 2 comments

I'm using the partitioned rate limiter (so I can chain multiple rate limiters), which as far as I understand is based on an implementation by the framework itself.

There is a concept of a "partition key", but it's explained neither in the Polly docs nor in the framework docs. It's also not covered explicitly by anything on StackOverflow.

After trial-and-error I realised:

  • for incoming requests: it allows for policies-per-users, e.g. partitioned by username, IP address, access token
  • for outgoing requests to external APIs: one would probably use a constant partition key, e.g. "aws-sns-service", "azure-auth-service"

It would be helpful to add a small explanation in the docs because this was confusing. (I can't submit a PR as I'm still not certain my above understanding is correct).

That's basically the explanation yes. It's effectively a key for the "shard" to track the counts against, so for a user it might be their user ID for example.

I'll add a brief aside when I add a chained rate limiting example, but if it's not explained at all in the docs for rate limiting itself I suggest opening an issue against the Microsoft documentation to have it explained there.

Good idea! I did that here.