A High-Performmance Solution to Microservice UI Composition

So you have decided to go for microservices and you want to achieve maximum autonomy for your teams. However, at the front end your services still have to be joined into a single page.

Here you have two options: Either have a single UI layer which all teams depend on or let each service render its own UI and compose these UI pieces later on.

In the course of moving the Autoscout24 platform - one of Europe’s leading internet car portals - to an AWS-hosted microservice architecture, we favored autonomy over centralization and therefore decided to go with the UI Composition approach. During this process we were faced with all the challenges UI Composition entails, such as performance, consistency, isolation, and testing.

This tells the story of our UI composition evolution, how we failed in the very beginning and how we are now serving millions of requests per second, composed dynamically and optimized on the fly.

I work as a DevOps Birth Assistant with ThoughtWorks, a shepherd for clients and their hardware and software projects, consulting on infrastructural and operational challenges in distributed computing environments, using the power and the values behind the idea of DevOps with the help of focused collaboration, cross-functional teams and pair programming.

I love building things on Linux, especially in clouds, I like reliable infrastructure as code, descriptive provisioning tools and statically typed programming languages. I see it as his destiny to help people achieve serenity through DevOps.

My purpose in life seems to be trying to outsmart computers. I'm really bad at it most of the time.