American Express Global Business Travel (GBT) is a travel and meetings management company, which operates in 140 countries at present. They receive over 3 million messages and make 100 million service calls, all in one day! To effectively deal with the sheer volume of messages and calls, GBT launched Global Trip Record™, a platform that captures all global bookings on various transport companies in one system and functions as their single source of real-time and historic trip data.
A Strong Orchestration Layer: The Need of the Hour
GBT was looking for a strong orchestration layer on which to build this platform. They had an existing legacy system, part of which was a Java application that had thousands of lines of code across different files. For this reason, each redeployment required IT to shut-down, then re-start, the entire system. “No integration is easy and proprietary software doesn’t allow you to change much,” says Pradeep Chintam, software engineer at GBT. “As a developer, I like working with the code everyday. We were also looking for a product that allowed customization together with reliability. Hence, the decision to use WSO2 Enterprise Integrator,” he explains.
Eventually GBT decided on a microservices approach, yet they evaluated the pros and cons carefully first. Pradeep had a lot of questions on how microservices can be used to orchestrate between services, how to proceed with service discovery, and how to perform load balancing and fault tolerance. “When discussing microservices architecture, a lot of people are of the view that you should have smart endpoint and dumb pipes. I honestly don’t agree with that. What do we want from a solution - to follow principles to the letter or an application that functions without glitches? I think many people would choose the latter, no matter how important principles are,” says Pradeep. That was exactly what was done with WSO2 Enterprise Integrator when building their new platform.
GBT has many connecting systems and wanted to enforce a single entry point to their application. Thus, the architecture is built in a way that everything connects via WSO2 Enterprise Integrator, and all orchestration between microservices happen within WSO2 Enterprise Integrator itself. This architecture has worked for 2 years to date, without a single instance of downtime.
The Deployment Model
Every message passes through at least thirty microservices and all the message transformation is handled by WSO2 Enterprise Integrator. GBT scales up their microservices so that they can handle hundreds of transactions and messages per second, but they scale the Enterprise Service Bus (ESB) based on their needs. To accomplish this, GBT also uses Apache Kafka to bring elasticity to the application, as they do not want to overload WSO2 Enterprise Integrator when connecting 30 different downstream vendors.
During the deployment model, the code is first checked into git. The architecture includes a Jenkins server where the build is triggered and it then passes to SonarQube which verifies all vulnerabilities and bugs. It is then packaged to CAR files. A plain ESB image is pulled, customized files are overwritten, and the CAR files are then copied to appropriate folders. After that, the final Docker image is created and published in their Nexus repository. Deployment is triggered in OpenShift which only receives the image tag number. OpenShift will then pull the image from Nexus, deploy it, and is finally ready to serve the request.
Unlike the industry standard, GBT does not use a governance registry in their architecture. As a result, Pradeep limited the number of instances and technologies. GBT uses a custom solution, where they use another ESB project which acts as their governance registry.
This solution is an integral component of GBT’s aim to provide travel management tools that offer millions of customers around the world the best possible travel experience. “The fact that WSO2 Enterprise Integrator is open source and allows for flexibility were big plus points for us. Apart from that, the support has been great. I’ve been using the product for over 6 years and I’ve only raised a support ticket once, which was solved within the day,” says Pradeep.
To learn more about how GBT created Global Trip Record™, watch this video: