Airline tickets booking engine
Our customer is one of the largest airline companies in Russia, with a significant potential for growth. Millions of passengers have chosen their services for both domestic and international flights. Our customer’s goals include being modern, competitive and continuously increasing service levels. This includes not only improving inflight service but also being effective from an IT perspective: providing a smooth and enjoyable customer journey online, being able to reflect customers’ needs within a minimum amount of time.
For years our customer used a multitenant online sales solution provided by a partner. The multitenant nature of the box solution resulted in very long cycles of change request delivery and didn’t respond well to the customer's needs. Based on the collected data, up to 40% of users visited the customer’s online booking system using mobile devices. Lack of a responsive layout suited to mobile, and difficulties with implementing desired business logic presented a need to shift to building a tailored web interface: modern, fast and flexible. To support that, it was also decided to implement a Web API which could be leveraged by other types of clients: a native mobile app, online travel agencies and others. The airline online booking system has a requirement of high availability and a high load operating model. As a core component of online ticket sales, the new booking engine also requires integrations with numerous external systems, such as GDS, CRM, Online Check-in System, Payment Gateway.
The requirement of having a Web API working in high availability mode and supporting high load scenarios dictates a need for scalability by design. To build an easily configurable and consumable web API, the team has chosen .NET Core platform:
- Cross-platform nature allows hosting the solution using different targets: Linux distributions, MacOS, Windows.
- High performance of Kestrel web server.
- A decent number of community-supported modules, including migrated from .NET.
In addition to cross-platform nature, .NET Core also allows us to use Docker and to host API backend while having the flexibility to choose any of the big 3 cloud providers: Azure, AWS, GCP or any hosted solution with Kubernetes.
To build a web client the team has picked Vue.js as a high-performance framework for building single-page applications with a wide range of components available. SPA web client allows us to use a full strength of content delivery networks (CDNs): users all over the world would be able to load the app within just a few seconds or almost immediately if they have already used it once. Vue.js is very small-scale, and users visiting the website with mobile devices also benefit from the small size of the app, especially when using mobile networks.
The booking engine integrates with GDS as a master system which requires heavy session management. Message queue (Rabbit MQ) and Cache (Redis) allow us to utilize GDS sessions effectively and keep the booking engine scalable.
The web client and the API have been released, and new ticket bookings are being performed using the new system. Clients using mobile phones can now enjoy a much smoother user experience as a result of an interface more suitable for mobile devices. The native mobile client is being retargeted to use booking engine REST Web API. Next releases are planned to include integration with additional APIs to upsell services that a user might be interested in, as well as for the implementation of IATA NDC API to be available to online travel agencies and other parties.