Meeting Service Level Objectives at Scale with HAProxy and Redis
Speaker(s): Pradeep Thangavel
Freshworks is one of the world’s fastest growing SaaS companies. This talk will be focusing on two primary aspects:
- How Freshworks maintains High Availability using a custom-built intelligent proxy backed by Redis
- How we manage to scale to half a million requests per minute using HAProxy and Redis as one of our primary datastores.
HAProxy is the reverse proxy in our infrastructure and the entire traffic control & routing happens at this layer. This intelligent proxy will have the complete context of traffic routing & how each of the infrastructure components behaves, responding within Service Level Objectives (SLO) at any given point of time. The components include any/all downstream services that the primary product depends on. Any SLO violation will update the Redis store (for every web request in real time) & HAproxy redirects such requests (SLO violated) alone to an emergency app cluster, keeping the default primary cluster trouble-free & help maintain the overall uptime SLA of 99.99%
Tech stack : HAProxy + Redis + Go
As a part of scaling the infrastructure & to manage the increase in traffic, we moved 50% of our web request workload(async) to a background job processing. Ruby on Rails is the MVC framework, and we use Sidekiq, backed by Redis as the primary database to manage all background job processing.
In this talk, we will explain how we tuned to Redis connection pooling to manage 300k rpm at the compute layer & scaled it well.