I have a SOAP api that I would like to throttle access to on a User basis after "x" many calls have been received in "y" amount of time.
After searching around, the #1 consideration (obviously) is to consider your parameters for when to throttle users. However, I don't see much in the way of best practices/examples for implementing such a solution. I did see the Leaky Bucket Method which makes sense. I have to believe there are more ideas out there though.
Any other takers on how you go about implementing your throttling solution? Questions include:
- Do any frameworks provide capabilities (e.g. Spring, etc.) for throttling in web apis?
- Seems to me you would need to store access information per user. How do you minimize the database overhead for doing this EVERY call?
- Do you even NEED to access a datastore to implement this?