Since its inception in 2010, Freshworks has grown to become a global leader in customer engagement software. The company’s cloud-based suite of business software, led by its flagship support product Freshdesk, is used by over 150,000 organisations worldwide. As Freshworks continues to rapidly expand its product and user base, it relies on Redis Enterprise Cloud, enterprise-grade Redis from Redis Labs, to perform a wide variety of critical database functions while keeping application responsiveness lightning fast.
Freshworks has seen year over year growth upwards of 50% for the past six years and recently crossed more than US$100 million in annual recurring revenue. This extraordinary growth, spurred by the rapid adoption of its flagship Freshdesk product and the addition of seven other new products, was straining the capabilities of Freshwork’s application architecture and development operations.
As the company’s database load grew, it was having trouble scaling performance. Freshworks needed to reduce the burden on its MySQL database, but was finding that its current caching solution, open-source Redis, was creating more problems than it was solving. “ElastiCache didn’t support live migrations so if we wanted to migrate data from one instance to another, several weeks of manual human effort were required in order to avoid downtime,” said Abhishek Dhulipudi, Site Reliability Engineer. “This limitation really slowed down our product development lifecycle.
After evaluating several alternative NoSQL in-memory databases, Freshworks decided it wanted to stay with the extremely high-performance and flexibility of Redis. Ultimately, the company chose Redis Enterprise Cloud, enterprise-grade Redis from Redis Labs, to replace its solution.
“With native Database-as-a-Service that runs in our AWS cloud, Redis Enterprise Cloud offers the best of all worlds,” said Naren Janakiraman, Director, Engineering. “We have access to the highest in-memory performance available on the market today, flexible data structures for extreme efficiency across a wide variety of use cases, and fully managed operations that speed up, rather than slow down, application delivery.
In addition to using Redis Enterprise as a front-end cache for its MySQL database, Freshworks also
uses Redis Enterprise across the following use cases:
- Metering – For rate limiting purposes, Freshworks uses Redis Enterprise’s highly optimised hash,
list and sorted sets data structures and built-in commands to meter the API requests coming
- Persistent data store – Freshworks uses Redis Enterprise as a persistent store for background
jobs, stored in disk, as well as the rate-limiting meter
- Session store for authentication microservices – As Freshworks transitions to microservices, it’s begun to separate key workloads out of its monolithic Ruby on Rails web application framework. One of the first microservices to result from this effort is dedicated to authentication and uses Redis Enterprise as a session store
- Real-time analytics – Freshworks leverages Redis Enterprise’s powerful data structures including hyperloglog, bitmaps, and sets to serve as a front-end database for user analytics
“Every request that comes into Freshdesk touches Redis Enterprise in one way or another,” said Dhulipudi. “By offloading several key database functions to Redis Enterprise, we’ve been able to decrease our number of MySQL database instances, while significantly increasing application response times and our ability to scale.
As a fully managed Database-as-a-Service offering, Redis Enterprise Cloud comes without any operational headaches. Its automated scaling, failover, cluster creation, persistence and high-availability settings were huge selling points for Freshworks as it contemplated an upcoming expansion from three to five regions. “We have around 67 services right now and all of them use Redis Enterprise in some way,” said Janakiraman. “Without its seamless functioning and automation, we would still be putting an unsustainable amount of effort into infrastructure and operations management. Redis Enterprise has helped our teams focus on innovation and business growth to successfully expand our product portfolio and serve new geographies.”
As Freshworks looks to the future, it sees Redis Labs’ role expanding. “As we continue to scale to meet demand, we’ll frequently be looking to Redis Enterprise to pick up ever larger workloads,” said Dhulipudi. “More creative caching, persistent data store, microservices and user analytics use cases will be implemented as we work to keep our suite of business software performing at the highest level possible.