Micro Frontends para Aplicações Web - Almeida, Daniel Filipe Fernandes (2022)
Over the course of the last ten years, web applications have stood out as the go to when it comes to software development, replacing the traditional desktop apps. As a result of this, customer demand has been on the rise, leaving companies with their hands full as they try to meet expectations. In the year 2011, the world was introduced to the concept of Microservices, which came to revolutionize the software development industry by splitting typical backend monolithic codebases into smaller, more manageable chunks that were able to be developed, deployed and tested independently. This in turn facilitated customer deliveries as it opened the door to iterative and incremental developments, preventing customers from having to wait months, or even sometimes years, to receive a fully functional product since they could now be handed constant updates in time periods as short as 15 days. However, even though this expedited today’s backend developments, a web application is not only composed by a server-side layer, but also a client-side one. Today’s application frontends still rely on the traditional monolithic architecture which presents the same issues that backend developments once did and, due to the ever-increasing popularity of the online world, these types of solutions have been growing massively and escalating those problems. By having these architectural discrepancies between frontend and backend codebases, iterative and incremental software developed can never be fully realized as all microservices still depend on the same monolithic frontend. This is where Micro Frontends come in. The concept behind this model is to take the teachings microservices provided and expand them to the client-side. By organizing applications into several components, each with its respective business sub-domain, vertical teams can then be assembled and take full ownership of said sub-domain, ultimately implementing the component from end-to-end. Since a Micro Frontend based architecture is still a somewhat recent concept, information is lacking and makes the assessment of its viability hard to reach. As such, this dissertation aims to study its feasibility by studying and comparing possible alternatives, ultimately describing its advantages and disadvantages, and finally presenting a proof-of-concept application.