The way folks oversimplify takeaways is just... 🤦‍♂️
All the chat about the Prime Video thing, then "serverless bad", "microservices bad", "monolith good", ... 🤡

It's not a matter of one being bad and the other good. All are valid approaches, be it a monolith, a microservice or something in between, depends on each situation.

#DistributedSystems #Microservices #Monoliths

The problem wasn't that they used serverless and microservices, it was that they used them in a scenario where it didn't make sense (I know, we can choose different approaches in different scenarios, mind-blowing 🤯).
One of the hardest things to reason about when designing systems, is rightsizing the components, and define their boundaries, both from a logical (e.g. classes, namespaces, projects) as well as physical perspective (e.g. containers, servers). These are not straightforward to decide, as many things come into the balance, from business logic considerations, to technical ones (e.g. performance). From my point of view, this is what went wrong in that project.
I know it's by design, but it's really annoying the way folks just don't put in the slightest bit of effort in including some nuance in their takes.

@joaofbantunes something that continues to blow my mind is how prevalent the myth of the “silver bullet” is. “If you just do X will solve all your problems”, for whatever value of X (microservices, monoliths, REST, gRPC, graphQL,…).

Where’s the fun in that? Choosing the right approach is what makes engineering fun!

@joaofbantunes It’s not as if all of prime video is a monolith. A subset of functionality in the analysis system was refactored into a larger microservice from a bunch of smaller ones. The entire system is still a #microservice architecture.
@adrianco that's what I understood from the post as well, but folks are talking as if now the whole thing is a single monolith 🤣

@joaofbantunes as someone who worked on Prime Video and now works in ECS - I can’t agree more. Their architecture made a ton of sense in the environment they built it (move fast, multiple teams, low ops).

They weren’t optimizing for lowest cost/month - they were optimizing engineering time and org structure (and experimenting and moving fast).

I’m delighted they’re using ECS, but that’s just because they changed what their focus was 🤷‍♂️

Better a rearchitecture than never launching.

@kohidave nice to have an insider insights, as I was just venting with an outsiders perspective 🙂