Micro Frontends – a strive for fully verticalized systems
David Leitner is an enthusiastic Software Professional from Vienna who is working as a Technical Expert for Senacor in various projects using a bunch of different stacks and environments. I don’t sleep too much, do open source and prefer keeping my code simple and small instead of clever and edgy. Sharing my knowledge as speaker at technology conferences and as a lecturer for post-diploma courses at the University of Applied Sciences Technikum Vienna.
Microservice architectures brought us significant benefits, which allow us to structure teams based on business capabilities, improve scalability and enable the flexibility of being polyglot. Unfortunately, this powerful architecture is often complemented by a feature-rich browser application which ends up way to often in the creation of as a single, big and sprawling frontend-monolith.
The approach of micro frontends is an effective way to tackle this problem and first appeared at the end of 2016 on the ThoughtWorks Technology Radar. By going into detail about the idea of extending the concepts of microservices to the frontend world, the importance of end-to-end verticals, the difference of an orchestration- or choreography-based implementation, and the trade-offs in reusability become reasonable.
Upon a closer look at the advantages and challenges we’ve experienced in customer projects, it turns out that micro frontends are not a silver bullet either. Rather, they are suited for a specific set of problems. In a nutshell, micro frontends can be a powerful tool to avoid frontend monoliths and this talk will give you the needed knowledge to decide if it’s the right one for the job.
Main concepts: orchestration vs. choreography: amazon-approach vs. web-component-approach, why SPAs kill micro frontends, consumer driven endpoints vs. generic ones and backend-for-frontend, defining suitable units of deployment, challenges in reusability; revisiting the main cornerstones, benefits and downsides to give a solid decision-making basis.