Expedia.com is among the world's largest travel sites, with 24 million active Expedia Rewards members across 32 countries. They come to book flights, cruises, hotels, rental cars, attractions, and services, generating $72 billion in bookings in 2021. In addition to Expedia.Com, the Expedia Group companies represent global travel trendsetters and leaders such as Hotels.com, VRBO, Travelocity, and Trivago.
"Flight data is very dynamic, since the availability of flight seats and pricing information could potentially change every minute―or even every second,” said Expedia Group software engineer Bhanu Choudhary. “The cached information could therefore go stale pretty quickly. Moreover, for any route, there can be thousands of possible flight combinations meaning the data size is huge."
Expedia looked for different ways to optimize the 3-second latency using Cassandra caching users were experiencing. They reduced the duplicate data stored in the blob in Cassandra, used better serialization mechanisms like Protocol Buffers and different compression algorithms like Kryo.
"We did manage to reduce the overall latency with these improvements,” said Expedia Group software engineer Rohit Goel. “But it still took more than a second to get the results end to end. We still wanted to improve it further, so we decided to go for an entire rewrite of the caching layer with the goal of achieving sub-second service latency."
Embedded Ignite within a Java service bootstrapped with Spring Boot, to easily add the company's custom REST endpoints to interface various debugging and housekeeping operations.
Anything longer than a three-second page load increases bounce rates of up to 38%, according to one study. By accelerating the speed of flight data queries from 3 seconds to 150 milliseconds, Expedia contributes significantly to high levels of customer satisfaction, customer retention, and competitive differentiation. Data has shown these clearly contribute to strong financial performance.
Their Apache Ignite-centric infrastructure also simplified IT management of hierarchical environment-specific configurations and integrations like Vault.