We were convinced this worked, so let's go for the real deal. That started off exactly the same way. We took the designs from Figma. We identified the microfrontends that we wanted. From our proof of concept, we understood that the best combination is to have ES build and React. It's blazingly fast, it's really cool, but the big difference is that now we were deploying to AWS. So if you deploy in AWS, you put your results on an S3 bucket, all good.
And we repeated the pattern for the microfrontends that we needed to build. We also kept the pattern of an app shell that was built using React, also in AWS, that would fetch the microfrontends from S3 buckets. With this setup, we went live, we went forward with the product, and we learned a lot along the way during the development.
What did we learn? Well, we learned that we had really good experiences, we had mad things, and we had bad things. Let's take those out of the way. AWS was a bit of a challenge because it was a transitioning time, we were changing our infrastructure, the team was new into AWS. So that on its own, it was already daunting. But as you can imagine working for VW, you have a lot of policies and a lot of security restrictions on network. So that posed a problem when trying to get things and having things up and running as we wanted. We were able to, but it took us some time.
When to draw the line between the micro frontends? This was something that we only understood a bit into development, and essentially, it is because we didn't identify so clearly what would be our domain objects. So we needed to have a bit more clearance, not clearance, sorry. We needed to have a little more vision on what would be the objects that would be shared between the micro frontends. And this kind of goes a little bit together with the design system, because, okay, we do have a design system that's set. But sometimes you have to do a little bit of tweak here on this micro frontend and then another little bit of tweak on the other micro frontend. Where do you put it, do you duplicate it? It was kind of sketchy. Another question, using a monorepo or using a one repo per micro frontend? The opinions, they're scattered. We don't have a strong opinion, but it's something that we wonder, have we done the right thing? Should we do it differently? We don't know.
However, what we do know is that React pulled through. So we were able to deliver and deploy a micro frontend architecture using just React. No framework was needed and it's working. So kudos. In this process, since we approached the product as a Greenfield one, we were able to clean a lot of the technical debt, of course, not only on the frontend, naturally, but also on the backend, because we were able to spot a couple of places that we didn't do the best decisions in the past and now we have paved the way for also going for a microservices approach for the backend. Most of all, we have been able to achieve the seamless deploys that we wanted. We have independent teams working together, delivering and bringing the best experience to the end user in an autonomous way. All in all, I would say that microfrontends do have our seal of approval. So thank you very much. I'll see you soon.
Comments