Netflix Tudum Architektur: von CQRS mit Kafka zu CQRS mit RAW Hollow
Tudum.com ist das offizielle Fan-Destination von Netflix, das exklusiven Inhalt, Hintergrund-Einblicke und interaktive Erfahrungen für über 20 Millionen Mitglieder jeden Monat bietet. Die Architektur der Plattform ist so konzipiert, dass sie wartbar, erweiterbar und flexibel ist, indem sie einen serverseitigen UI-Ansatz ähnlich der Command Query Responsibility Segregation (CQRS) verwendet. Das Redaktionsteam von Tudum erstellt Inhalte, die in einer Schreib-Datenbank gespeichert werden, und dann in ein leseoptimiertes Format für die Verwendung durch Benutzer konvertiert werden. Die ursprüngliche Architektur verwendete Kafka, um die Schreib- und Lese-Datenbanken zu trennen, was unabhängiges Skalieren und eventuelle Konsistenz ermöglichte. Dieser Ansatz führte jedoch zu einer Verzögerung zwischen Inhaltbearbeitungen und ihrer Reflexion auf der Website. Das Team identifizierte die Quelle der Verzögerung als den Page Data Service, der einen Near-Cache verwendete, um die Seitenbau zu beschleunigen. Um dieses Problem zu lösen, entwickelte Netflix RAW Hollow, eine in-Memory-, ko-lokale, komprimierte Objekt-Datenbank, die starke Lesen-nach-Schreiben-Konsistenz und niedrige Latenz bietet. Tudum war ein perfekter Testfall für RAW Hollow, das die I/O-Aktivitäten erheblich reduzierte und synchronen Datenzugriff in O(1)-Zeit ermöglichte. Die aktualisierte Architektur eliminierte die Notwendigkeit von Kafka-Infrastruktur und reduzierte die Daten-Übertragungszeiten, sodass Autoren und Redakteure Änderungen innerhalb von Sekunden vorhersehen konnten. Die Migration führte auch zu schnelleren Anfragezeiten, wobei die Homepage-Konstruktion von 1,4 Sekunden auf 0,4 Sekunden reduziert wurde.