Amazon Prime Video’s Microservices Move Doesn’t Lead to a Monolith after All

Feature image of Foucault’s Pendulum from the National Museum of Science and Technology in Milan by Ben Ostrowsky, licensed under Creative Commons 2.0.

Feature image of Foucault’s Pendulum from the National Museum of Science and Technology in Milan by Ben Ostrowsky, licensed under Creative Commons 2.0.

There's been a resumption of the debate among infrastructure software developers over whether decoupling an organization's functionality into microservices in the name of scalability reduces complexity or re-introduces it. This happened when Amazon Prime Video engineers made an architectural decision, and chronicled it in their blog. For a streaming video monitoring function, they moved away from microservices, they said, and back toward a monolithic architecture, for purposes of simplicity, speed, performance, and cost reduction.

Before long, the whole debate fired up again: Microservices only buys you so much scalability, some said, but eventually the complexity of its messaging between services eats any speed gains you had at the start.

At least that's what Prime Video's engineers appeared to be saying. But a close examination of their situation by world-class experts, including from Amazon Web Services (AWS), revealed that the devil was lurking outside the details after all and out in the open where we should have seen him: Yes, they had consolidated some Step Functions, but in so doing, they actually went the other direction. They made a microservice; the blog's author simply didn't realize it.

So what was this debate truly about, then? Do we not know a monolith when we see it anymore? Are we so quick to take sides in a debate that we've lost track of what we're actually arguing about?

For my June 2023 return to The New Stack, I gathered a world-class panel of experts to discuss the dilemma of championing an architectural trend in distributed computing, well before the meaning and the implications of that trend are even generally comprehended.

It is a natural evolution of any architecture where services that are built get consolidated and redistributed. The resulting capability still has a well-established contract, [and] has a single team managing and deploying it. So it technically meets the definition of a microservice.
— Ajay Nair, General Manager for Lambda and App Runner, Amazon Web Services
Previous
Previous

Closure: Is Open-Source Licensing Suddenly Unsustainable?

Next
Next

Your Post-Mega-Layoffs Content Marketing Strategy