TomoLink
CompaniesAppleSystem DesignHow Netflix Really Uses Java
System Design
Mediumreal-world-case-studies

How Netflix Really Uses Java

30 minsJavaMicroservices
30 mins
1 sections
Java, Microservices

Overview

Netflix is predominantly a Java shop.

Every backend application (including internal apps, streaming, and movie production apps) at Netflix is a Java application.

However, the Java stack is not static and has gone through multiple iterations over the years.

Here are the details of those iterations:

  • API Gateway

Netflix follows a microservices architecture. Every piece of functionality and data is owned by a microservice built using Java (initially version 8)

  • BFFs with Groovy & RxJava

Using a single gateway for multiple clients was a problem for Netflix because each client (such as TV, mobile apps, or web browser) had subtle differences.

To handle this, Netflix used the Backend-for-Frontend (BFF) pattern. Zuul was moved to the role of a proxy

  • GraphQL Federation

The Groovy and RxJava approach required more work from the UI developers in creating the Groovy scripts. Also, reactive programming is generally hard.

How Netflix Really Uses Java [Medium] | Apple System_design | TomoLink