Catalog Metadata

1 posts

netflix3 min readCurated summary

The Data Canary: How Netflix Validates Catalog Metadata

Netflix built an automated “data canary” system to validate catalog metadata changes with real production traffic. The system compares a new catalog version against a known-good baseline, detects customer-impacting regressions in under 10 minutes, and blocks corrupted data before it reaches most members. The effort treats data deployments with the same rigor traditionally applied to code deployments. ## Why Catalog Data Needs Canarying - Catalog metadata defines available titles, artwork, playback eligibility, and regional availability. - A previous incident corrupted a feed without any code or configuration change. - The resulting empty data for some titles prevented manifest generation and caused playback failures. - Existing code canaries detected nothing because the failure occurred in transformed data, not application code. - Validating individual upstream feeds was insufficient because corruption could emerge during final transformation. ## Challenges of Fast, Production-Level Validation - Data cycles occur frequently, leaving only one cycle to detect problems and block publication. - Traditional canary analysis requires 30–60 minutes to reach statistical confidence. - Shadow traffic could replay catalog requests but could not reproduce the full playback lifecycle across services. - Real production traffic was necessary to expose actual customer impact. - The system also needed to contain regressions so that validation itself did not create a large outage. ## The Data Canary Orchestrator - Netflix created a dedicated canary environment with: - An orchestrator instance coordinating validation. - A permanent baseline cluster serving the latest production catalog. - A canary cluster receiving the new catalog version. - Before testing, the orchestrator verifies that both clusters are healthy and version-synchronized. - It then triggers a chaos experiment that compares customer behavior across the two versions. - Results are returned to the transformer through a generic REST endpoint, allowing other data sources to adopt the pattern without transformer-specific changes. ## Extending the Chaos Platform - Experiment thresholds were customized to meet the 10-minute detection requirement. - Separate tests were run for major client types because they have different traffic patterns and dependencies. - Playback traffic was especially effective at revealing failures. - Sticky canaries used session affinity to keep each user on either the baseline or canary cluster, enabling a clean comparison. - Starts Per Second (SPS) became the primary metric because it measures successful playback attempts more directly than latency or catalog-service error rates. - Metrics are streamed in real time, and experiments abort immediately when a regression appears. - This prioritizes rapid protection over maximum statistical confidence, which is appropriate given the strong customer-impact signal. ## Production-Hardened Reliability - The orchestrator resumes polling experiments after restarts instead of abandoning active validation cycles. - Leader election prevents multiple orchestrator instances from triggering duplicate experiments during deployment. - Version tracking ensures baseline and canary clusters are aligned across tenants with different data-consumption schedules. ## Controlled Failure Injection - Netflix validated the validator by deliberately corrupting catalog data. - Tests included denylisting prominent titles and simulating realistic data-corruption scenarios. - These experiments demonstrated whether the canary could identify meaningful playback regressions before corrupted metadata was broadly released. Netflix’s approach shows that high-velocity data pipelines require deployment safeguards distinct from code canaries. Teams managing critical data should validate final transformed outputs with representative production traffic, use direct business-impact metrics, and automatically stop publication when regressions appear.

Read original(opens in new tab)