A 🧵thread 👇🏽
- microservices
- microfrontends
- serverless
- cloud-native
- containers
- orchestration
All of these terms are in the bucket of "the better way to do things" as per the mainstream today
These "trends" are more abt org struct than tech
Lots of product startups, mostly B2C e-com or gig economy frontends. These have all in recent times have seen a phase of 10k to 1M users in 1 year kind of growth.
Uber pioneered it, but it is an entire era now.
Google making a messaging app a day is this.
Facebook pasting stories everywhere is this.
Random games popping up in ecom/payment apps is this.
Since they don't know any better, they prefer isolation.
Login Team: Let us make this fully independent login conponent in Svelte.js with 100% coverage and ship it off. It's soooo lightweight, everyone else can just plug it in as a webcomponent.
When systems fail at scale, it is failure at integration, not at unit.
Now you have 10 teams with extremely good idea of 10 different 10% of your product, but no single person with any clue of how the 100% works.
Not just financial costs just - which ofcourse is often the biggest.
The overheads of containerization is often 15-20% of your overall infra cost (no kidding).
Microfrontends on app/web increase build times.
Each service or each frontend module works fine independently. With mocked up data and mocked up connections.
But actually spinning up your entire infra has now become impossible on localhost.
The only "integration test" of the entire system happens now at the hand of the users.
But they have no time out of firefighting to actually give any arch inputs even.
If the user service changes the structure of user obj, every one else has to remodel. Only now, *everyone* has a separate user model or protobuf def to update
Google and Facebook famously are monorepos.