Micro Frontends – The New Frontend Architecture
There were times when the entire application was built as a single monolith. A single application was responsible for backend as well as server side rendering of UI.
We saw an evolution when number of JavaScript frameworks like React JS, Angular, Vue JS gave the ability to implement UI independent of the backend. Backend was still monolith. Monolithic architecture had its own advantages, but they were outstripped by their limitations as the applications grew more and more complex.
Microservices emerged as a popular architectural pattern for developing large, complex, and growing applications. This pattern splits the backend into number of small services that are more focused, manageable, scalable and technology agnostic.
We saw great advantages of using microservices at the backend, but many large applications still implement UI layer as a monolith. Now a days, UI also known as front ends or single page applications are feature-rich implementations and are quite complex. They also need to be split up into smaller focused implementations.
Micro frontends is a new buzzword in the world of front end development. This architectural style for front end applications enables them to be developed as a composition of independently deliverable loosely coupled small applications. Micro frontends are intended to bring the same advantages to front end applications that microservices brought to the backend.
Facts about Micro-Frontends
Benefits of Micro-Frontends
The Good
The Bad
Different ways of building Micro Frontends
There can be different ways of implementing micro frontends as listed below.
HTTP server routing to redirect to multiple micro-apps.
Integrate different micro-apps at build time.
Integrate different micro-apps at run time.
Use iFrames for loading different micro-apps.
Use different frameworks available for building micro-frontends.
Available frameworks that can be used to build micro frontends
There already are a few frameworks available to build micro frontends. Here is a list of some such frameworks.
- Bit
- Module Federation
- System JS
- Piral
- Open components
- Luigi
- Qiankun
- Podium
Conclusion
Frontend applications are becoming complex day by day. Large and complex frontend applications need an architecture which will give the same advantages of microservices. Micro-frontends are taking root into the frontend ecosystem. Micro frontends enable development of small and manageable micro applications.
Even though Micro-frontends offer a lot of advantages, it is not a silver bullet. Like every other architecture, there is a trade-off between monolithic architecture vs Micro-frontends architecture. Applications can take advantage of this architectural style if chosen wisely considering specific requirements and aspects of development and maintenance.