About 2 weeks ago Amazon Prime Video's engineering team confided that it was ditching AWS Microservices for a Monolithic architecture. Furthermore, it is purported that engineers on the team concluded, "We don't use serverless inhouse for production loads, and no company at sufficient loads should." Does this signal an end for Microservices? Perhaps not, but it does clearly point to risks for the deployment of Microservices in large scale environments. It perhaps also suggests a shift away from conventional Agile processes where software engineers only need to understand the details of a specific feature of an application rather than the entirety of the application in order to hand off critical functionality in sprints.
This is not surprising. In our blog, we have long critiqued the undocumented risks of Agile methods. We know that legacy applications are not well suited to Agile engineering methods, because legacy software typically lacks comprehensive test suites needed to execute agile at scale. Similarly, legacy software is not typically componentized in the way that most modern software is engineered.
In short Amazon Prime Video's decision to move from AWS microservices to a monolithic architecture appears to make sense. Particularly as they report reducing AWS cloud infrastructure costs by 90%.
Certainly, this does not mean that there is no valid use of microservices, but the buyer must beware of the limitations of microservices architectures and architect and design solutions with these considerations in mind.