Article Complete
AI FeaturesJava Jolt Juice

The Java Secret of Netflix

Netflix is ditching reactive programming and has upgraded its Java-powered backend to gear up for the present.

The Java Secret of Netflix

Key takeaways

  • Netflix upgrades its Java backend to move beyond reactive programming and JDK 8.
  • Java remains a powerful choice for Netflix, evolving beyond its legacy perception.
  • Netflix employs two distinct Java-powered stacks for streaming and enterprise operations.
  • Data integrity is crucial for Netflix Studios in managing production workflows.
  • Paul Bakker emphasizes the importance of retry mechanisms in high-traffic systems.

Takeaways drafted with AI from the article text.

Even though Java may not be the trendiest programming language currently, it is still a powerful choice for many, including Netflix. There have been advancements for developers to make AI-infused Java applications as well.

Java is no more perceived as a legacy programming language. It has evolved over the years. And Netflix has pushed its stack forward—past JDK 8, beyond reactive programming, and new tech.

Two Sides of Netflix, All Powered by Java

Netflix has two sides of a tech stack powering its operations. The first powers its global streaming service, a high-traffic system spread across regions where one request can fan out into dozens. For this, Bakker mentions that their approach is that, when something fails, a retry could solve it.

Image Credits: YouTube / @Java
Image Credits: YouTube / @Java

The second part involves Netflix Studios, which is enterprise-focused. These manage film production workflows — schedules, gear, people, and logistics. Here, data integrity is paramount. As Bakker put it, “If someone saves data about a movie being planned, that data absolutely needs to persist.”

Image Credits: YouTube / @Java
Image Credits: YouTube / @Java

Bakker stressed that Netflix's architecture for both the requirements remains essentially the same, all powered by Java. 

Upgrading The Backend Java Stack

Java Development Kit is the software development environment that enables developers to create and run Java applications. The migration to modern Java wasn’t glamorous, but it was necessary. The company patched the legacy libraries, got the services to use JDK 17 and above to step up a notch. 

For anyone in the same boat looking to upgrade things, Bakker suggested, “Just fix it. It might look hard, but it is actually not.” He highlighted that they did nothing special here, but only upgraded. With that alone, Netflix experienced significant performance improvements.

https://youtu.be/XpunFFS-n8I?si=y0XL4O-dTNFBqDl7

“We got about 20% less CPU time spent on garbage collection,” Bakker noted. He emphasised that it was a big win for Netflix to achieve a 20% performance boost on their machines without any tuning, which is often a challenging process.

With JDK 21 and the introduction of generational ZGC, things improved even more: “We went from more than a second pause times to zero.” He highlighted, “Significantly fewer errors on our IPC calls.”

Bakker was quite blunt about REST and said, "I don't think you should use REST at all." He put forth the argument that GraphQL has more benefits comparatively for Netflix.

Bakker praised another new technology with the Java tech stack upgrade, virtual threads. He explained that they enable processes to run in parallel, giving them improved performance by default.

During experimentation, they encountered a few issues with it. However, he mentioned that a fix arrived in JDK 24, and Bakker’s team is confident that it will get better.

Relying on Spring Boot, An Open Source Java-based Framework

The streaming company works closely with the Spring Boot team, an open-source Java-based framework. Bakker explained that Netflix uses standard Spring Boot plus a curated set of modules that hook into Netflix’s infrastructure. There’s security integration, dynamic configuration, observability, and more.

He further explained that the migration from an older in-house framework to Spring Boot was a long, deliberate effort. Thousands of services were ported, helped along by automated tooling and migration guides. Now, most services use Spring Boot 3, and upgrades happen within days of each new release.

They've worked closely with the Spring team to shape the GraphQL support, and are cautious in adopting Project Leyden to improve the backend's performance in the near future. 

Bakker highlights that Spring Boot may not be flashy, but it’s familiar, battle-tested, and extensible—exactly what Netflix needs.

Goodbye to Reactive Programming

It may surprise some that Netflix, once the birthplace of RxJava, is now moving away from reactive programming. “Literally every API used to be Rx,” Bakker recalled. But over time, the complexity of debugging and maintaining reactive systems began to outweigh their advantages.

“My hot take is that virtual threads combined with structured concurrency is going to completely replace reactive programming,” Bakker said. 

Today, Netflix only uses reactive libraries where absolutely necessary. For everything else, the stack has been standardised around synchronous code powered by virtual threads. 

As structured concurrency solidifies in upcoming Java versions, Netflix sees even less reason to keep reactive code around. “We can finally live our lives happily,” Bakker joked.

Published

Corrections: AIM corrects errors of fact and notes the change on the story. Spotted one? Tell the editors. Read our editorial standards.

More in this story

netflix · 5 stories
  1. How Does Netflix Handle Its Data Engineering Woes
  2. Netflix Is Using AI For Its Subtitles
  3. The Future Of Gaming is Cloud. And How
  4. How This Bengaluru Boy Cracked Netflix, Twitter and DoorDash Interviews
  5. You are here: The Java Secret of Netflix
About the author

Editor

I am a tech aficionado and a computer science graduate with a keen interest in AI, Coding, Open Source, Global SaaS, and Cloud. Have a tip? Reach out to

All stories
Belamy · Daily

The day’s AI news, before your first meeting.