e-tron reservations system
Xolvio offers a level of experience and cross-functional value that we have never encountered anywhere else, nor have we been able to find from any single organization.
Jeff Titus, Audi
As one of the leading premium car manufacturers, Audi of America was about to enter the electric vehicle market and decided to create an e-reservation system to promote their soon-to-be-announced e-tron car. High complexity and performance requirements together with a tight deadline meant the headless e-tron reservations system had to be carefully architectured and work flawlessly from day one. To make all of this possible, we designed a distributed micro services architecture that separated the different business domains within the solution, allowing multiple teams to work in parallel. By using a combination of Domain-Driven Design and Behavior-Driven Development, we managed to collaboratively write specifications able to address edge cases inherent to the system’s complexity, while automated tests verified the proper handling of every use case, including edge cases. Next, we added the UI, which seamlessly connected to the headless backend of the system. Finally, through rigorous performance testing and tuning we made the e-tron reservations system capable of processing thousands of reservations per minute. In the end, the solution was developed in record time and on time, performed perfectly and at scale from the get-go, plus it was more than ready to be further evolved and continues to be in use today.
The e-tron car launch meant a new era for Audi, where the high quality brand joined the electric vehicle revolution. Correspondingly, the marketing team devised a campaign to promote the launch with a highly complex e-reservation system playing a key role, so as to assert brand position within the traditional automotive space. This was the first time the company undertook such a complex e-commerce project and Audi’s marketing team was facing serious challenges:
Apart from the basic reservation taking functionality, the platform was meant to create marketing buzz around the e-tron car. Audi’s team devised features that created demand for the new car, which in turn immensely increased the solution’s complexity.
The reservation system had to be capable of processing thousands of reservations per minute to meet the expected demand for the e-tron car sales. This furthered the need for the solution to be of as high quality as possible.
For various reasons, not least because of complications that can occur within a large enterprise software project, Audi was left with only around 4 months to prepare the reservation system for the product launch.
The e-tron platform had to be delivered in record time while retaining high quality to match the brand. This required the right digital architecture, so that we could move at speed with the delivery. For that reason, we started our work by migrating from Audi’s existing cloud infrastructure to an advanced distributed microservices architecture, where each team was responsible for one aspect of the system.
In order to clearly divide up the work between the teams, we applied Domain-Driven Design to arrive at separate business domains with the correct boundaries and bounded contexts. When the overall problem was structured into the separate domains, we proceeded with using Behavior-Driven Development within each domain to gather specifications and set up automated tests. In effect, all of the work needed to be done to create the e-tron reservation platform could be realized in parallel, so that Audi would meet the looming deadline.
Our use of Behavior-Driven Development and writing specifications collaboratively across Audi’s teams also allowed us to formulate edge cases for how the reservation platform was going to work. That way, we were able to tackle the system’s immense complexity and ensure it would work flawlessly from day one. Meanwhile, in order to meet the high performance requirements, we put a lot of effort into performance testing and tuning, so that the platform could handle thousands of reservations per minute.
The headless solution required two frontends: one for the customers and one for the back office with real time data dashboards. In order to stitch the distributed microservices together to enable a single view of data to the frontends, we created one of the first ever distributed GraphQL implementations, working closely with the Apollo team and consequently helping shape the product now known as Apollo Federation. Finally, we integrated the payment gateway into the solution by building a facade around it that was plugged into the GraphQL layer.
Previously, we explained how the use of Domain-Driven Design allowed us to make all of the teams work independently of each other, consequently speeding up the development process. However, this great win gave birth to a new challenge: how to bring all of the distributed data back together for the frontends.
We turned to GraphQL as the solution to that problem. At the time, Apollo Federation was still under development, so we investigated the promising practice of schema stitching. This only solved half the issue by giving us a single API endpoint to get all of the graphs in one place. What it didn't solve was the ability to aggregate the data effectively.
In order to join all of the data, we opted for custom dynamic resolvers. Our work here was greatly facilitated by Apollo Studio, which gave us unprecedented insights into how the system was operating. The Studio also opened up a new avenue for QA on a data level. Looking to further leverage Apollo’s tooling in the project, we got in touch with their team.
It turned out Apollo was already working on Federation to solve the kind of issues we were facing. Matt DeBergalis, Apollo CTO, came to work with Audi and Xolvio to understand the use case for the purpose of Federation development. In the end, our custom schema stitching/resolver aggregation solution for the e-reservation platform’s initial release was a success, while our use case greatly helped inform and shape Apollo Federation.
Working together with Audi’s IT department and multiple partner agencies, we successfully responded to all of our client’s requirements which resulted in stellar outcomes:
We made sure no stone was left unturned while gathering specifications, which enabled us to tackle the e-tron reservation platform’s complexity when it came to edge cases. By means of rigorous performance testing and tuning we maxed out the solution’s capability to handle large volumes of commerce traffic.
Our architecture design made it possible to smoothly work on different aspects of the system in parallel, so that Audi could meet the breakneck deadline and keep the product launch date. The solution worked flawlessly from day one.
The e-tron reservation system proved to be a success and continues to be in use today. Through our high quality design and delivery we empowered Audi’s team to continuously improve the platform as a living digital product.
All in all, the e-tron reservation platform was launched on time and performed perfectly from the get-go, which we still feel was next to impossible given the tremendously short timespan. And yet we did it, thus helping Audi earn the badge of the most progressive of the traditional automotive brands by means of high-tech marketing to match their high-quality products.
Do yourself a favor and reach out to solve your digital problemsPick our brains