How we built the Favourites feature on the Airasia superapp
Article Summary
Joojo Dadzebo Amoquandoh Dontoh from AirAsia reveals how a simple heart icon became a complex engineering challenge. Building a favorites feature across multiple lines of business meant solving data synchronization, caching strategies, and scale—all while keeping costs low.
The AirAsia superapp team needed to add favorites functionality across flights, food, rides, and groceries. This wasn't just about letting users click a heart icon. It required building a scalable backend service that could handle multiple product types, provide data for recommendations, and maintain performance without breaking the bank.
Key Takeaways
- Used Google Cloud Run with minimum instances for fast response and cost efficiency
- Implemented cache-aside strategy with Redis to cut database roundtrips for repeat queries
- Built event logger to track unfavorited items, preventing critical data loss
- Created flexible schema supporting multiple business lines with mutable and immutable data
- Published events via Pub/Sub for decoupled data access by recommendation systems
AirAsia built a favorites service that scales across multiple product lines using Cloud Run, Redis caching, and Firestore, while maintaining low costs and enabling future recommendation features.
About This Article
AirAsia's superapp users had no way to save items across flights, food, rides, and groceries. They had to track everything manually, which meant longer purchase paths, more time searching, and less confidence in their choices.
Joojo Dadzebo's team built a data synchronization service on Google Cloud Run with Firestore storage. They used a Cache-Aside strategy with Redis to cut down database roundtrips when users made repeated queries.
An event logger tracked all favorite and unfavorite actions, which stopped data loss and gave the recommendation system access to user-product interactions. This helped the team personalize experiences and grow revenue.