Amazon Prime Video slashed costs by 90% after abandoning microservices for a monolithic architecture. Segment, once managing 140+ services, consolidated into one and watched test suites drop from 60 minutes to milliseconds. These aren’t isolated incidents—they’re signals of an industry-wide awakening. For a decade, teams cargo-culted Netflix’s microservices architecture, assuming it was the path to scale. Most discovered they’d adopted Netflix’s complexity without Netflix’s problems.
Amazon Cuts Costs 90%: Monolith Beats Microservices
Amazon Prime Video’s Video Quality Analysis team re-architected from distributed microservices to a monolithic application, cutting costs by 90%. The culprit? AWS Step Functions orchestration overhead and S3 intermediate storage for video frames between services. Network costs exploded at scale.
The solution was brutal in its simplicity: pack everything into a single process on EC2/ECS. Data transfer happens in-memory. No S3 buckets. No Step Functions. Result: 90% cost reduction and simplified operations.
This isn’t a small project or startup reversing course—it’s Amazon, the company that invented serverless and runs AWS. If they’re choosing monoliths for cost and simplicity, the “microservices scale better” argument collapses. The important context: this is one component of Prime Video. Other parts still use microservices, proving the point—architecture should be case-by-case, not dogma.
140 Services, 3 Engineers Just Keeping It Alive
Segment’s engineering team faced a different nightmare. They’d split their event routing system into 140+ destination services—one for each integration like Mixpanel and Amplitude. Each service needed its own repository, queue, and deployment pipeline.
The operational overhead was crushing. Different services ran different versions of shared libraries because engineers would skip updates to avoid the testing burden. Auto-scaling configurations were inconsistent across services with unique CPU and memory requirements. Test suites took 60+ minutes to run, when they didn’t flake out entirely. Engineers got paged constantly for load spikes.
Segment consolidated to one monolithic service called Centrifuge. Test suites that took 60 minutes now finish in milliseconds. One engineer can deploy changes in minutes instead of coordinating 140+ repositories. Library improvements jumped from 32 per year to 46. The team stopped spending all their time on infrastructure and started shipping features.
The quote that captures the waste: “3 full-time engineers spending most of their time just keeping the system alive.”
Netflix Envy: Why Teams Adopted the Wrong Architecture
Teams adopted microservices for the wrong reasons. Netflix ran microservices, so everyone assumed they should too. Engineers wanted “microservices” on their LinkedIn profiles. Conference talks and consultants pushed the pattern as inevitable. Future-proofing that never materialized.
The problem: Netflix has 15,000+ employees and 200M+ subscribers. Your 15-person startup has 1,000 users and “get customers and stay alive” problems. When you adopt Netflix’s architecture without Netflix’s problems, you get all the complexity with none of the benefits.
The hidden costs pile up fast. YAML configuration fatigue from Kubernetes manifests. Coordination overhead across dozens of deployments. Debugging requests that span 15 services. Each microservice needs test suites, CI/CD pipelines, hosting infrastructure, monitoring dashboards, logging systems, and security scanning. A team of five engineers can easily spend more time maintaining pipelines than building features.
Martin Fowler nailed it: “Microservices shift complexity from code to infrastructure.” Most teams traded a manageable problem for an operational nightmare.
The 50-Developer Threshold: When Microservices ROI Turns Positive
Microservices ROI turns positive only with 50+ developers, high growth rates, or extreme scale requirements. Below that threshold, operational overhead exceeds benefits.
The rule of thumb: 3-5 developers per microservice. A 15-person team can sustainably manage 3-5 services max, not 20 or 140. Do the math on Segment’s case: 140 services would require 420-700 engineers to operate sustainably. They had a small team drowning in complexity.
Valid microservices use cases exist: extreme scale like Netflix or Amazon, regulatory isolation requirements, or integrating systems from acquired companies. For everyone else—the 80% of teams with fewer than 50 developers—microservices are premature optimization at best and architectural malpractice at worst.
The 2025 Solution: Modular Monoliths
The industry is shifting to modular monoliths as the default pattern. You get strong module boundaries within a single deployment unit—operational simplicity of monoliths with architectural modularity of microservices.
Spring Modulith 2.0 provides compile-time boundary enforcement. Companies like Shopify organize codebases into modules for Orders and Payments, each with isolated databases and public APIs. GitHub uses modular monoliths for repositories and pull requests. The pattern works at scale without the operational nightmare.
The key benefit: in-process communication instead of network calls. No service meshes, no distributed tracing complexity, no debugging requests across 15 services. Single deployment pipeline. If you truly need to extract a module to a microservice later, the boundaries are already there.
This isn’t “go back to messy monoliths.” It’s a sophisticated middle ground that solves real problems instead of following trends.
Key Takeaways
- Amazon Prime Video saved 90% by moving from microservices to monolith, proving that even at massive scale, simpler architectures can win on cost and operations
- Segment’s consolidation from 140 services to 1 monolith dropped test times from 60 minutes to milliseconds and freed 3 engineers from infrastructure maintenance
- Microservices ROI requires 50+ developers and 3-5 engineers per service—most teams adopted Netflix’s architecture without Netflix’s scale or problems
- Modular monoliths provide the architectural benefits of microservices (clear boundaries, domain-driven design) without the operational nightmare (140 deployment pipelines, distributed debugging)
- Architecture should solve your actual problems, not follow industry trends—most teams shipping features faster with monoliths than drowning in YAML debt







