Architecture Tudum de Netflix : du CQRS avec Kafka au CQRS avec RAW Hollow
Tudum.com est la destination officielle des fans de Netflix, offrant du contenu exclusif, des aperçus en coulisses et des expériences interactives à plus de 20 millions de membres chaque mois. L'architecture de la plateforme est conçue pour être maintenable, extensible et flexible, en utilisant une approche d'interface utilisateur pilotée par le serveur similaire à la ségrégation de la commande de requête et de la responsabilité (CQRS). L'équipe éditoriale de Tudum crée du contenu, qui est stocké dans une base de données d'écriture, puis converti en un format optimisé pour la lecture pour être consommé par les utilisateurs. L'architecture initiale utilisait Kafka pour séparer les bases de données d'écriture et de lecture, permettant une mise à l'échelle indépendante et une cohérence éventuelle. Cependant, cette approche a introduit un délai entre les éditions de contenu et leur réflexion sur le site web. L'équipe a identifié la source du délai comme étant le service de données de page, qui utilisait un cache près pour accélérer la construction de page. Pour résoudre ce problème, Netflix a développé RAW Hollow, une base de données d'objets compressés, en mémoire, co-localisée, qui fournit une forte cohérence de lecture après écriture et une faible latence. Tudum était un cas d'essai idéal pour RAW Hollow, qui a considérablement réduit les E/S et a permis un accès aux données synchrone en temps O(1). L'architecture mise à jour a éliminé la nécessité d'infrastructure Kafka et a réduit les temps de propagation des données, permettant aux rédacteurs et aux éditeurs de prévisualiser les modifications en quelques secondes. La migration a également entraîné des temps de requête plus rapides, avec un temps de construction de la page d'accueil passant de 1,4 seconde à 0,4 seconde.