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.