Bezoekverslag React.Amsterdam: Scaling Applications with Microfrontends

Events

Op 10 t/m 12 april 2019 was de Kromhouthal in Amsterdam Noord het toneel voor de 4de editie van React Amsterdam. React Amsterdam bestaat uit 2 workshop dagen en een conferentiedag rondom alles met React te maken heeft. Dit jaar werd React Amsterdam door 1500+ developers bezocht. Wij bezochten de conferentiedag.

DE CONFERENTIE

De conferentiedag was opgezet rond een tweetal tracks: React General/Web en React Native. Gezien het feit dat wij beiden niet met React Native bezig zijn, hebben wij alleen de React Web talks gevolgd. Natuurlijk waren er veel te veel talks om ze alle in detail te gaan beschrijven in dit blog. Daarom beperken we ons hier tot wat voor ons gevoel de meest interessante talk van de dag was: Scaling Applications with Microfrontends door Max Gallo van DAZN.

SCALING APPLICATIONS WITH MICROFRONTENDS

Over het algemeen bestaat een website/webapplicatie uit een backend, frontend en databases. Voorheen werden applicaties als een “monolith” gebouwd. Dit hield in dat de frontend, backend en database queries met elkaar verweven waren in één en hetzelfde project. Niet schaalbaar en moeilijk te onderhouden.

De volgende stap in de evolutie van applicatieontwikkeling was het opdelen van applicaties in een frontend- en een backend project. Hierbij is het team van frontend ontwikkelaars verantwoordelijk voor het bouwen van de presentatielaag en de backend ontwikkelaars voor de dataverwerking en databases. Deze manier van werken maakt een en ander al overzichtelijker en makkelijker te onderhouden.

Maar wat nu als er meerdere domeinen binnen een bedrijf verantwoordelijk zijn voor verschillende gedeelten van de data/applicatie? Hiervoor heeft men het microservices principe bedacht: een front-end, een aggregation layer (bijvoorbeeld GraphQL) en meerdere “microservices” die ieder verantwoordelijk zijn voor hun eigen database. Waarbij elk domein vervolgens verantwoordelijk is voor zijn eigen microservice. Het microservice principe maakt een applicatie overzichtelijker, beter beheer(s)baar en het biedt de mogelijkheid om meerdere teams onafhankelijk van elkaar aan verschillende delen van de backend te laten werken.

 De frontend is helaas vaak nog een monolitische applicatie en dus is er dan maar één team verantwoordelijk voor de hele frontend van de gehele applicatie. Door hetzelfde concept van microservices toe te passen in de frontend, en dus de frontend te splitsen in meerdere “applicaties”, wordt het makkelijker om met meerdere teams aan een applicatie te werken. Dit noemen ze “microfrontends”. Door het gebruik van microfrontends kan elk deel van de applicatie, net als bij de backend, worden ondergebracht bij het desbetreffende team met hun eigen domein en kunnen deze domeinen onafhankelijk van elkaar werken.

Grote bedrijven als OpenTable (Open Components), Zalando (Interface Framework) en Spotify (Iframes & Event Bus) gebruiken dit principe al om verschillende onderdelen (support, catalogus, winkelwagen, etc) binnen hun applicatie onafhankelijk van elkaar te ontwikkelen. De microfrontends worden door een bootstrapper ingeladen wanneer nodig (scheelt ook weer in laadtijd) en vervolgens aan de klant getoond. Via dezelfde bootstrapper kunnen de microfrontends vervolgens data met elkaar uitwisselen.

ONZE INDRUK

Hoewel deze talk qua inhoud en onderwerp erg interessant was, was het toch wel jammer dat er alleen op het principe werd ingegaan en niet in de technische details werd gedoken. Hoe dan ook gaf deze talk ons veel stof tot nadenken.

 Ferenc en Dwight, Frontend Developers @ PanCompany

Gerelateerde berichten