В live-стриминге ошибка — это не деградация, а мгновенный user-facing инцидент. Netflix решает это, перенося контроль качества и приоритизацию прямо в origin-слой.
Основное ограничение появляется там, где VOD-подходы перестают работать. В live нет буфера времени: сегмент должен быть закодирован, доставлен и закэширован за секунды. Любая задержка записи или дефект сегмента сразу проявляется у зрителя. Дополнительно система сталкивается с конкуренцией за ресурсы: запись сегментов, чтение CDN и пики трафика (особенно на live edge) происходят одновременно. При масштабах десятков миллионов пользователей даже кратковременные сбои в storage или лишние запросы к origin приводят к каскадной деградации.
Netflix выбрал архитектуру, где Live Origin — это не просто storage endpoint, а активный слой принятия решений. Ключевой выбор — дублирование live-пайплайнов в разных регионах и отбор «первого валидного» сегмента. Это снижает вероятность доставки дефектного видео без сложной синхронизации между пайплайнами. Второй важный trade-off — отказ от динамических манифестов в пользу шаблонов сегментов с фиксированной длительностью. Это делает поведение системы предсказуемым и позволяет origin вычислять, когда сегмент «должен» появиться, но требует строгой дисциплины в кодировании и таймингах.
Реализация строится вокруг простого, но жёстко контролируемого контракта: packager пишет сегменты через HTTP PUT, CDN читает через HTTP GET по тем же URL. Внутри этого простого интерфейса спрятана логика. Packager добавляет метаданные о дефектах, а origin при запросе выбирает лучший сегмент из нескольких пайплайнов. Если сегмент ещё не готов, origin не всегда отвечает 404 — на live edge он может удерживать соединение до публикации, снижая лишний трафик. CDN (Open Connect) дополнительно оптимизирует поведение: кэширует даже 404 с точным TTL и отсекает невозможные запросы, опираясь на шаблон сегментов. Для миллисекундной точности Netflix расширил стандартное HTTP-кэширование кастомными заголовками.
Отдельный слой сложности — storage. S3 оказался недостаточно предсказуемым для 2-секундного SLA записи. Netflix перешёл на abstraction поверх Cassandra с chunking больших объектов и local quorum, чтобы выдерживать отказ зон доступности и высокую write-availability. Это улучшило латентность, но выявило конфликт: при пиковых read (Origin Storm) деградировали write. Решение — write-through cache (EVCache), который забирает почти весь read-трафик, сохраняя стабильность записи. Параллельно внедрена полная изоляция путей: отдельные compute-стэки, раздельные read/write-кластеры и независимые scaling-контуры.
В результате система управляет не только данными, но и приоритетами. Запись сегментов — это всегда критично, далее следует live edge, затем DVR. При перегрузке origin применяет приоритизированный rate limiting и даже намеренно возвращает 503 с TTL, чтобы «успокоить» повторяющиеся запросы. Такая комбинация — предсказуемые шаблоны, избыточные пайплайны, изоляция записи и агрессивное кэширование — позволяет системе выдерживать десятки миллионов одновременных стримов без деградации пользовательского опыта. Метрики показывают значительное снижение латентности storage и устойчивость под экстремальным read throughput, хотя цена решения выше, и это осознанный выбор в пользу надежности.