Microfrontend architectures

Microfrontend architectures are a category of socio-technical techniques for monolithic front-end application decomposition, comprising: a decision framework for technical implementation; and governance for team structure and interactions.

There is no "right" way to build a microfrontend, indeed all Good architecture only exists relative to a specific context. This must mean that Architectural decisions must be made respecting the operating context. Because this results in different technical implementations of microfrontends being made specific to meet a business context, defining a microfrontend is best described in terms of the capabilities it provides:

A core quality of a microfrontend architecture is that the subsystems should not be dependent upon one another, therefore able to practice Continuous Integration with autonomy in their subdomain.

It is true that a microfrontend architecture can allow for the composition of multiple UI frameworks. However, in reality this is not as common as marketed. It can be useful for encapsulating legacy behaviour, or performing a stepwise migration. The main advantage is that microfrontends represent a form of Evolutionary Architecture in which future innovation does not have to be constained by past implementation decisions - it's entirely possible for a new team to operate within the microfrontend using bespoke technologies, while other functionality remains unaffected.

The caching strategy will affect where transclusion will be performed

No-caching and high-caching systems will make different decisions as to where the combination of the individual micro-frontends will be performed. In a situation where content must be highly cached, the use of Edge-Side Includes (at the CDN) can be useful, even accommodating cases where a single page is composed of both less-frequently and more-frequently changing components. In a low-caching context, performing this combination interactively on the front-end can be used.