HolidayMe

CASE STUDY

HolidayMe is an online travel agency that provides customized holiday packages, itineraries, flights and more to customers around the Middle East and Southeast Asia. Since its launch in December 2014, HolidayMe has earned multiple startup business awards, and currently employs more than 200 people across its offices in Dubai, Riyadh, Jeddah, Kuala Lumpur and Pune, India. Clients can use HolidayMe to choose from more than 300,000 global properties, 8,000 activities and 1,000 curated itineraries. Providing these services generates a significant amount of data on a daily basis.

To process this data without compromising on performance, HolidayMe turned to Redis Enterprise. Since its inception, HolidayMe has been using Redis for caching and pricing and eventually adopted functionalities likes RediSearch and RedisJSON when they started a full migration to Redis Enterprise. Redis Enterprise not only enabled HolidayMe to speed up its data output by 50 to 60 times, but also made it possible for the company to move toward a more modern microservices architecture.

The main advantage that we get from Redis is low latency. Generating a huge amount of logs can induce a huge amount of latency. We tried other options, but none of them were as performant from a latency perspective as what Redis has been able to offer us.

—Rajat Panwar

Chief Technology Officer HolidayMe

Why NoSQL is a Safe Bet

Gradual Transition to Redis as a Primary Database

HolidayMe has been using open source Redis since its inception, especially because Redis was supported by Amazon Web Services (AWS). Eventually, HolidayMe began moving to Redis as its primary database for customer-facing interactions. Several years ago, HolidayMe was using Redis for a specific caching use case, and had adopted MongoDB for other purposes. But manually writing complex queries in MongoDB and quickly updating hotel-occupancy data, slowed down the company’s data output. At that moment, Redis’ versatile data structures came to the rescue. The company started using Redis’ Hashes, Sets and Lists to process data and update geographic information, and even created its own key structures for specific queries. Now, HolidayMe’s website works completely on Redis.

Although HolidayMe recognized the merits of Redis early on, the company’s transition to Redis Enterprise was more recent. Initially, HolidayMe tried to build its search autocomplete mechanism with MongoDB, Lucene and Elasticsearch. However, HolidayMe was not satisfied with the latency these databases yielded, and subsequently built its autocomplete function using RediSearch.

“We got better performance,” after making the switch to Redis, said Rajat Panwar, CTO of HolidayMe. “We were able to deliver results to the customer in one-third of the time. From a latency perspective, what we used to have earlier from our autocomplete was around 400 to 600 milliseconds. Then, when we used Redis, we were able to reduce that to around 200 milliseconds.”

RediSearch had all the features that HolidayMe was looking for, as well as compelling additional capabilities. For example, RediSearch enabled HolidayMe to build a complex autocomplete feature that yielded results tailored to regions and traffic. As a result, HolidayMe is gradually phasing out ElastiCache in favor of RediSearch and migrating its load balancers over to Redis Enterprise.”

Customer requirements

  • Minimal latency. To process high volumes of flight and hotel data, HolidayMe was looking for a highspeed framework that would deliver immediate results to its customers. To process high volumes of flight and hotel data, HolidayMe was looking for a highspeed framework that would deliver immediate results to its customers.
  • Thorough support. To address technical questions and concerns, HolidayMe needed first-class customer support to give it confidence in the migration to Redis Enterprise.
  • Long-term maintenance. HolidayMe needed a data store that could support a variety of use cases with consistent performance and support

Redis Enterprise benefits

  • Compatibility with other databases. Redis Enterprise maintains its excellent functionality even when used simultaneously with other databases, such as MongoDB.
  • Comprehensive data structures. Redis’ versatile data structures let HolidayMe create the effective autocomplete mechanism it wanted.
  • Redis expertise. Redis Labs’ sales team helped HolidayMe address concerns about transitioning to Redis Enterprise, projected operations per second and more.

Reliable, Low-latency Solution

In the past two years, Redis Enterprise has drastically streamlined the workflow for HolidayMe’s call-center agents. It also enables the company to complete more than 60,000 operations within just a few hundred milliseconds. Redis Enterprise’s stellar performance isn’t restricted to the backend, either. HolidayMe decided to test out Redis Enterprise after a detailed conversation with Redis Labs’ sales team — during which, to Panwar’s surprise, a regional sales manager was able to answer all of his questions to his satisfaction.

“One fine evening, I had created a Redis Labs account, and the next day, when I was just coming to my office — so I was driving my car — I received a call,” Panwar said. “I had all the technical questions and those were answered by the time I had reached my office, so that was a key factor in order to have much more confidence to be able to move to Redis Enterprise.”

Now, HolidayMe operates more than 800 microservices, and more than 90% of them push data to Redis with sub-millisecond latency. HolidayMe transitioned from an API framework to a microservices architecture in order to streamline app configuration and to enable its developers to focus on singular functionalities rather than on entire swaths of code. Redis’ data structures— particularly Logs—allowed the company to do that without compromising performance.

Next Steps with Redis Enterprise

When HolidayMe finishes migrating its workloads to Redis Enterprise, the company may adopt RediSearch as its main data store. The company also plans to look at time stream data and aggregation using Redis on Flash in 2020, and eventually hopes to explore other modules, such as RedisJSON.