VoV 081: Micro-Frontends with Luca Mezzalira
Luca first defines what he means by a micro-frontend. He advises that when designing a new application one should consider how to make it scalable from the beginning. His passion for micro-frontends came from working with DAZN, where they need to enable hundreds of people to work on the same project in different time zones and locations. This problem was solved by microservices.A microservice is a self contained, autonomous, independent service that can be deployed inside a system responding to an API you can consume. It only does one job, and when you have a backend that has multiple microservices you can move away from the old monolith, and scale one API at a time and apply an independent release of a service.
Microservices are often applied to the backend, but Luca talks about how the same principles can be applied to the frontend. This is similar to the way that Netflix works. His advice is to think about how you can slice your frontend into individual pieces. Micro-frontends can work with both regular and micro-backends. Luca talks about how DAZN has developed, from a monolith front and back to utilizing microservices. He has found that using microservices has decreased the amount of code they release, increased their speed because decisions happen locally and independently from the rest of the program, and enables teams to work in parallel. Using microservices on both the front and backend has given this large organization greater agility overall.
Luca addresses some risks with using micro-frontends. It is important to identify your business model before implementing a micro-frontend. They are more effective when you know where your site traffic goes and you can slice your frontend properly. When applied correctly, microservices can enable your app to get more elaborate because it will only load the code that it needs.
Ari Clark wonders if having a micro-frontend helps you create autonomous teams with expertise that benefit your company or if the specialization affects your operational readiness if something goes wrong. One of the main challenges DAZN has had is knowledge sharing between teams, and he shares practices the company has implemented to help spread the information around to keep people from feeling isolated. He talks about how developer teams are set up in his company, with some temporary roles and some people in rotation. Developers are encouraged to change their team if they want to try another challenge. Luca has found that this set up causes people to stick around longer, but notes that it is important that your location be pretty stable in the number of people there before implementing this method. He also talks about how people other than developers are divided in the company.
Luca talks about some of the challenges they’ve had with this organization and the tools they’ve employed that are conducive to this business structure. Some of their management methods are working in small iterations, creating bridges between teams, and centralizing some teams. They are currently working on creating a structure where developers at any stage can chip in. The panel discusses the value of this business setup.
The panel asks Luca his feelings on code reuse. He believes it to be important, but not essential. He talks about how resing code is implemented in his company and how they are working on a way to make it better. Luca notes that if you have a unique framework you’re using, you need to have try to have multiple libraries of the same framework for different versions. He also talks about situations where he found duplicating code helpful. The show finishes with the panel discussing his article on micro-frontends on Medium.
- Ari Clark
- Chris Fritz
- Elizabeth Fine
- Ben Hong
With special guest: Luca Mezzalira
- Sustain Our Software
- Sentry use the code “devchat” for 2 months free on Sentry’s small plan
- Elixir Mix
- The Phoenix Project
- Building Micro-Frontends Webinar September 30, 2019
- Follow Luca @lucamezzalira and at https://lucamezzalira.com