Topics In Demand
Notification
New

No notification found.

Blog
Microfrontend Principles: Guiding the Domain Driven Design

May 25, 2020

2561

0

Domain Driven Design approach is best suited with the complexity of modern day applications. While microservices architecture ensures a domain driven backend, the Microfrontends extend the concept to frontend development. This means that now the applications can be vertically sliced where each slice will be responsible for a single domain. For an OTT platform like Netflix, the various domains can be – user profiling, content profiling, device management etc. Frontend development for each of this slices will be handled by the Micro frontend architecture (MFA). Therefore, it will be useful to take a look into the guiding principles of this architecture and understand what governs its numerous benefits.

Micro frontend Principles

    • Decentralized Architecture: This is in direct contradiction with the monolithic style of application development. Micro Frontends need to be decentralized in their approach. Only then each Micro frontend unit will be treated solely for the objective it is meant to fulfill. This principle essentially paves way for the vertical slices. It is essential for Microfrontend’s development, governance, data management, and performance.
    • Scalable Performance: Next necessity that the micro frontend architecture needs to fulfill is scalability. In fact, the decentralization principle has already cleared the way for it. Scalability and performance go hand in hand. As the number for application users increases, the application should also be able to serve them without any change in quality of its services. Scalable frontend promises:
      • Smart Capacity planning
      • Adaptiveness towards the traffic patterns
      • Quick identification of resource bottlenecks

 

  • Reusability: This is arguably the most important principle for this architecture. This makes sure that all the micro frontend units are independently deployable frontends on their own. This principle essentially sets the quantum size of these units. Anything smaller than that might as well be a frontend component and nothing more.

 

    • Agility: For any development architecture for today’s times, the principle of agility is a given. Micro Frontends units should be developed and deployed in minimal time. Also, if there’s any improvement required in any of the units, then that too should be readily available.

 

  • Flexible Ecosystem: Flexible ecosystems is necessary for both development of the micro frontend units. It states that the unit should be developed independently without any coupling or dependency. As for the integration, they should be able adapt and communicate with each other without any trouble. This allows the different development teams to choose the technology stack of their choice. If there are any reusable components pertaining to a certain domain, they can be tweaked a little for the current applications. Flexibility of the architecture will ensure that the rest of the application can work with them. 
  • Failure Isolation: This can be seen as an extension of the flexibility principle. While that is meant for development, this principle sets the guidelines for micro frontend maintenance. It states that if there’s any failure or update in any of the micro frontend units, it should be isolated from the rest of the application. The rest of the system should be able to run practically unaffected from this change. The agility principle will make sure that no failure or update take too much time before it gets noticeable by the user.

 

Conclusion

These principles are very much similar to the microservice architecture as they should be. Microfrontends are essential for the autonomy of the development teams and the complexity of applications. With problem-solving approaches getting more and more human centric and users looking more for experience than services, Microfrontend architecture helps in a more focused new age development.


That the contents of third-party articles/blogs published here on the website, and the interpretation of all information in the article/blogs such as data, maps, numbers, opinions etc. displayed in the article/blogs and views or the opinions expressed within the content are solely of the author's; and do not reflect the opinions and beliefs of NASSCOM or its affiliates in any manner. NASSCOM does not take any liability w.r.t. content in any manner and will not be liable in any manner whatsoever for any kind of liability arising out of any act, error or omission. The contents of third-party article/blogs published, are provided solely as convenience; and the presence of these articles/blogs should not, under any circumstances, be considered as an endorsement of the contents by NASSCOM in any manner; and if you chose to access these articles/blogs , you do so at your own risk.


We started with the belief that business problems can be solved with intelligent, modern technology intervention. Since our inception, we have continuously evolved, experimented and innovated by testing the limits of the ingenuity that technology can enable. Building great products is intertwined in the roots of our organization and part of our DNA. Our journey has been of continuous learning and progression. Starting with Mobile and Cloud, User Experience, Data analytics BigData and IoT integrated solutions, to scalable web solutions governed by DevOps platforms and based on Microservices & Microfrontend architectures. Rather than sticking to single technology, we have always had the vision to adapt, master and embrace new-age technologies, tools and frameworks.

© Copyright nasscom. All Rights Reserved.