Implement RFC6585 Section-4 for Rate Limiting
-
Travis Bell
Hey Michael,
Unfortunately this is out of our control currently. The version of Nginx we're on has the 503 hard coded. They didn't improve this until a later version where you can control not only the status but also things like a fully compatible RFC6585.
We do have plans to eventually upgrade our load balancers/front end HTTP servers but this is not on our immediate list of things to do.
-
Michael Roterman
Hi Travis,
This is unfortunate, however do you think it would be reasonable / possible to implement a "backoff" header to help implementations decide when to retry?
Thanks!
-
Travis Bell
This has been on the table for a few months as we've been talking about how we're going handle the eventual commercialization of the API (this won't affect developer accounts). We've settled on bringing this in app and outside of the server layer but that also means it's a pretty big job.
There's a lot more than just some headers that will be useful, we'll have individual control over each API key and improved metrics on our end to make sure we can continue offering our service. It's a necessary step in our evolution, our ops team doesn't like when we have runaway clients (which happens more often than you might think). Thing is, we won't be spending any time on this until we do it all.
To answer your specific question, no, I don't have an ETA but it will be in the next 6 months.
-
Michael Roterman
I can understand where you are coming from, as far as I understand the limitation lies at Nginx ( meaning the current version and how you limit-rate the API )?
I'm not sure if this is possible but, if not through headers could the "backoff" time be included in the response body for time being? Is this limited to the implementation combined with Nginx currently or is that still a part of the API?
-
Travis Bell
Right now, the implementation is purely in Nginx which means we can't do anything without upgrading Nginx itself. This isn't planned in the immediate future.
-
Michael Roterman
Alright thanks Travis, I'll implement this differently then for time being.
Did you receive my e-mail by the way?
-
Travis Bell
- State changed from new to started
- Tag set to feature
- Milestone changed from Icebox to Magnolia
-
Michael Roterman
Glad to see this is being worked on! Will implement it within a few days.
-
Travis Bell
- State changed from started to hold
Work for this has been completed. I'm just waiting for ops to deploy it into production. I'll update this ticket once it is.
-
Michael Roterman
Hi Travis,
Been off the radar for a bit, sorry for the delayed update.
The pull request is waiting for your go-ahead!
-
Michael Roterman
Hi Travis,
Been a while since I got back to this ticket, do you have any news on this? The pull request is far by outdated now, and will have to update it accordingly.
Michael
-
Michael Roterman
Hi Travis,
Any update on this yet? I'm about a week away or so from releasing 2.0 and it would be nice to have this implemented?
Sincerely,
Michael
-
Travis Bell
- State changed from hold to started
- Milestone changed from Magnolia to Dawn of the Planet of the Apes
This has a good chance of getting pushed out in the next week or so. I'll update this ticket and forum post when we do.
-
Michael Roterman
Would be awesome to include this from 2.0 straight away, I have identified some issues that still need to be resolved on my side and also called upon some collaborators for help and opinions to get work done ASAP. My timeline for 2.0 is roughly 1-2 weeks, I was aiming for a Christmas release but I've had to deal with other personal things.
If this is going to be implemented by next week I'm pretty sure it's going to be included straight away, instead of making another 2.1 release for it.
-
Travis Bell
- State changed from started to resolved
Hey Michael,
After 15 months, guess what? This is live in production :D
I'll post about this tomorrow on the Google group but I thought I'd let you know.
Please Sign in or create a free account to add a new ticket.
With your very own profile, you can contribute to projects, track your activity, watch tickets, receive and update tickets through your email and much more.