Why?
Adding a rate limiter into your application may cost a huge amount of memory increase. To avoid this, you may choose to drop the requests. This is also known as leak bucket rate limiter.
If your application is allowed to drop the requests, then you don't need darko or any other external rate limiter.
darko is a scalable token bucket rate limiter that gives you:
- Guaranteed order on the requests
- No data loss
- Vertical scale
- Horizontal scale on HA mode
- Act as writer
- Accept writes and creates new jobs
- Act as reader
- Read the new jobs for its partition key
To avoid the loss of data, set the redis db persistence to AOF.
See more about redis persistence here.
- Improve logging
- Dynamic scale of followers
- Monitoring (maybe Prometheus)
- Fix standalone image