Rate limiting/monitoring with Redis
Submitted by Varsha Abhinandan (@varshajain) on Wednesday, 9 April 2014
As a system grows and moves towards a Service Oriented Architecture, there is generally a need to monitor and limit the access rates of different modules or services. This session will be about a redis recipe for implementing a lightweight and generic rate limiting/monitoring library. The simplicity of redis data structures, persistence and its in memory speed makes it a perfect datastore for this use case.
This library is currently used in production@Capillary and handles a sustained average traffic of around 16000 request per second across all services.
The session would talk about live scenarios@Capillary such as :
Limiting the sms/emails sent to a customer based on the configured limits.
AppID level monitoring and rate limiting in our consumer apps such as the eCommerce widgets.
Monitoring the usage of different APIs across clients, customer communications and user statistics. These hit rates can be easily visualized on a dashboard UI.
All of these uses cases are catered by a single generic library backed up by redis.
The session would also cover the basic low level data model, commands, the data structures used, different design iterations the library went through for improved performance.
I'm a developer at Capillary Technologies. My colleague, Souvik Roy would also be part of the talk.