Best Practices for Microfrontends
WEB DEVELOPMENT, INFRASTRUCTURE.Companies have recently started to break down their large applications into smaller, more manageable chunks, so that they have a variety of functions that can be developed and deployed independently, such as microservices for backend development.
This same approach can also be applied to frontend development, through the micro frontend.
Thus, the micro frontend is the architecture where the frontend functionalities are developed autonomously, composing a larger whole. In other words, the micro frontend makes it possible to divide a frontend application into small independent parts.
This approach has become increasingly popular because of the drawbacks of the traditional monolithic approach. In addition, micro frontends provide the ability to achieve a less cumbersome architecture.
Benefits of micro-frontend architecture
A monolithic architecture can slow down the application development process. Therefore, to increase agility, developers should create applications based on the micro frontend architecture, which allows new frontend functionality to be added to applications without affecting other parts of the code.
1. Working with several teams
Unlike a traditional monolithic frontend, micro frontends allow multiple teams to work independentlyon different pieces of software.
The original work team is divided into several independent teams, where everyone can express themselves to the best of their ability, with each team making its decision on architecture, coding style and testing, depending on each particular task.
Micro frontends are also useful in terms of the end result. By having multiple teams with the freedom to use the technologies they prefer, they will feel less constrained and more motivated to write higher quality code.
2. Faster development and implementation
Micro frontends greatly improve the frontend development process, because instead of having a single team dealing with all the communication load that occurs with a monolithic frontend, there are now smaller autonomous teams, working at the same time, on the implementation of different functions.
Building micro frontends is much faster and easier than building a gigantic monolithic software, representing a big step for the release of new features. As a consequence, implementation time is significantly improved.
3. Adoption of different technological stacks
Each of the micro frontends can be implemented using different technological stacks, as they are autonomous pieces of software, which represents a great strength.
This is because a monolithic frontend development team (with a single technology stack) may be divided into several teams, depending on their expertise in a particular technology stack.
On the other hand, being able to use several technology stacks in the same project makes it easier to hire new developers.
4. Easy-to-maintain web applications
Monolithic applications are difficult to maintain, especially when they are destined to grow. In contrast, micro frontend architecture is made up of small parts, making them very easy to test and maintain.
Maintaining large monolithic applications is a challenge for developers because it takes a lot of time, but with the micro frontend approach each team is responsible for maintaining the functions they developed.
In addition, each team is free to employ the testing tools and technologies of their choice.
Likewise, by working with small pieces of software, it is more feasible to understand the workflow of each functionality, facilitating its maintenance when necessary.
5. Continuous updates
With the implementation of microservices, the flexibility to update backend functions without affecting other parts of the code increased. However, there was still a monolithic frontend.
Micro frontends have aimed to decrease the size and prominence of the monolithic frontend, thus providing greater flexibility in frontend upgrades.
This is because micro frontends can break a monolithic frontend into smaller components, making it easier to update each business process, thus generating a better customer experience with more iterative updates.
6. Smaller and more manageable code
By their very nature, micro frontends have significantly less code than monolithic frontends. This code is much more precise and easier to handle, so developers are less likely to make mistakes due to its complexity and can work faster and with less effort.
This is important when creating applications where complex workflows need to be developed.
7. Reuse of functionalities
Micro frontends are especially beneficial when developing several applications with common workflow requirements. By using micro frontends, companies can take the commonality of functionality, saving time and effort when creating new applications.
For example, if a company has several sites that require a function to process payments, they can use the same functionality in all their applications, instead of creating them from scratch each time.
Best practices with micro frontends
Workflow organization
For the development of micro frontends, it is essential to allow teams to work independently. To this end, responsibilities and objectives must be set and agreed upon by all.
In addition, it is important that there are consistent and well-designed contracts between the different teams on how each API will perform.
On the other hand, business requirements must be aligned with the delivery of micro frontends. If the requirements demand that everything be delivered at once, then the micro frontends will not be leveraged well, because you will have a micro frontend architecture, but the enterprise remains monolithic.
Finding the right size for micro frontends
This is similar to thinking about how to size microservices. If they are too small, the application will be too fragmented, but if they are too large, the application will be too loosely connected. Therefore, a balance must be struck.
Unfortunately, there is no golden rule for this, because everything will depend on the particular application. However, it can be taken as a rule that each micro frontend has a business purpose that can be unambiguously defined.
Do not create excessive micro frontends
If too many micro frontends are created, the application can become excessively fragmented, creating components with no real value. There is a lot of literature that discusses the correct size of micro frontends and what should or should not be built into a microservice.
Single Page Application (SPA)
Each micro frontend should itself be a single page application. This system of micro frontends can be easily created using a meta-framework for single-page applications, such as Vue, ReactJS, Angular, Svelte, etc., which allows combining multiple development frameworks on the same page, without the need to update it.
Communication
The different micro frontends must communicate with each other through a standard event bus. Thus, each module will operate independently in its own framework, which will handle incoming and outgoing events.
Component libraries
Depending on the technological stack used by the main application, its modules must be organized in libraries, which will be "required" by the main application, thus being made up of different components.
Contact us
Aplyca specializes in modern web development, helping to create modern solutions to meet the needs of large-scale digital commerce. Get to know our results and contact us to analyze and discuss your project needs.