[Shock] Microservices (MSA) are wrong? The real reason Amazon returned to Monolithic

Hello! There’s a ‘truth’ that every developer has heard at least once:

> “Monolithic is old and clunky, Microservices (MSA) are sophisticated and perfect.”

However, an event occurred that shattered this belief. The Amazon (Amazon Prime Video) team, pioneers of the cloud and MSA, abandoned MSA themselves and reverted to a monolithic architecture. The results were shocking. They cut costs by a staggering 90%.

What exactly happened? Through the case of the Amazon Prime Video team, we will thoroughly explore the reality of “MSA Uselessness Theory”. 🕵️‍♂️📉

image


1. The Illusion of MSA: “Is it always good to break it down into small pieces?” 🔪

Amazon Prime Video has a service called ‘Video Quality Monitoring Service (VQA)’. It’s a tool that monitors in real-time whether there are any interruptions or glitches in the videos customers watch.

Initially, this system was designed in a ‘textbook MSA’ form:

  • Used AWS Step Functions as an orchestrator
  • Broke down functionalities into small pieces using AWS Lambda (serverless)
  • Each function stored and read data from S3

In theory, it was perfect. It seemed scalable and easy to manage. But reality was hell. 🔥

2. The Problem Arises: “The overhead is greater than the core” 💸

As the service operated, two serious problems emerged:

  • Overhead Hell: By breaking down each function into microservices (Lambda), the cost of communication between them was enormous. A situation arose where the time spent ‘sending and receiving data’ was longer than the time spent processing the data itself.
  • Cost Bomb (Step Functions): As thousands of video streams were monitored every second, the fees for ‘Step Functions’, which managed the state of microservices, increased exponentially.

Simply put, it was like “trying to cook a single ramen (video processing), but having separate people for boiling water, adding noodles, and adding seasoning, all communicating by phone and getting hit with a huge bill.” 📞💸

3. The Decision: “Let’s combine it back into one!” (Monolithic Transformation) 🔄

The Amazon team made a bold decision: “Let’s combine the distributed microservices into a single process (Monolith)!”

  • Removed Lambda & Step Functions: The fragmented Lambda functions were integrated into one large application code.
  • Memory Communication: Instead of exchanging data via S3 or the network, they changed it to exchange data as variables within the same memory. (Speed became incomparably faster 🚀)
  • Migrated to EC2/ECS: They abandoned serverless and ran it as a single large block on robust EC2 instances (containers).

4. Result: The Miracle of 90% Cost Reduction 📉💰

The results were astonishing:

  1. 90% Cost Reduction: Infrastructure costs were reduced to one-tenth.
  2. System Complexity Resolved: They were freed from the pain of managing hundreds of Lambdas and pipelines.
  3. Performance Improvement: Processing speed became much faster as data was processed directly in memory without network traversal.

The Amazon Engineering Blog concludes:

> “In systems requiring high throughput, a microservices architecture can actually be detrimental.”

5. Why Did MSA Fail? (Lessons Learned) 🎓

The lesson from this event is not “MSA is trash.” It’s that “MSA is not a silver bullet.”

  • Incorrect Separation: If functionalities that are too tightly coupled are forcibly separated, efficiency is destroyed due to communication costs (network, serialization).
  • The Trap of Distributed Systems: We must not forget the first principle: “Network calls are not free.”
  • Right Sizing: For startups or specific workloads (high-speed processing of large amounts of data), a simple monolithic architecture can be much more powerful and cheaper than a complex MSA.

📝 Conclusion: Don’t Chase Trends, See the ‘Essence’

There was a time when developers would scoff if someone said they were building a ‘monolithic’ system. But this case from Amazon teaches us ‘humility’.

Just because Google or Netflix uses MSA doesn’t mean our company has to. Sometimes, a seemingly crude ‘single large block (Monolith)’ can be the fastest, cheapest, and wisest solution.

Is your current project an ‘MSA by necessity’ or an ‘MSA chasing trends’? It’s time to check. 🤔⏱️



Comments

Leave a Reply

Your email address will not be published. Required fields are marked *