---
id: TASK-45.3
title: 'Эталонные разборы: classic-designs.md'
status: Done
assignee:
  - '@assistant'
created_date: '2026-09-17 12:11'
updated_date: '2026-09-17 12:58'
labels: []
dependencies: []
parent_task_id: TASK-45
ordinal: 48000
---

## Description

<!-- SECTION:DESCRIPTION:BEGIN -->
Разобрать типовые сервисы по фреймворку статьи Яндекса: URL shortener (эталонная задача из самой статьи), лента новостей (Instagram/Twitter), мессенджер, медиа-хостинг с видео.
<!-- SECTION:DESCRIPTION:END -->

## Acceptance Criteria
<!-- AC:BEGIN -->
- [x] #1 URL shortener: полный конспект решения из статьи Яндекса с расчётами (1 млрд ссылок, 500k RPS, KV-зеркало, RPS limiter)
- [x] #2 Лента Instagram/Twitter: fan-out on write vs read, celebrity problem, кэш ленты, медиапайплайн, CDN
- [x] #3 Мессенджер: connection-серверы, доставка сообщений, online-статус, упорядочивание
- [x] #4 Медиа-хостинг: upload-пайплайн, транскодинг, блоб-хранилище, CDN, счётчики, адаптивный битрейт
<!-- AC:END -->

## Implementation Plan

<!-- SECTION:PLAN:BEGIN -->
1. Источник по AC#1: полный текст статьи Яндекса (habr 564132) получен и разобран — все числа диалога, DDL, схема KV-зеркала, RPS limiter, расчёт 43 серверов и сценарии отказов извлечены дословно.
2. Структура classic-designs.md: intro (как пользоваться + связка с methodology §6 и KB) + 4 разбора, каждый по 6-этапному фреймворку из methodology §1 (требования → API → схема → детали → ресурсы → эксплуатация), с блоком 'трейдоффы, которые надо проговорить' и мини-схемой для доски.
3. §1 URL shortener — конспект решения статьи (AC#1): диалог требований, кодирование 7/5 символов, control/data plane, DDL Account/Link/Oplog, KV-зеркало + majority-коммит + GC, L1/LRU, RPS limiter (leaky bucket, снимок раз в 100 мс), LAT actuator, расчёт 25 воркеров/4 ДЦ/43 сервера, бюджет 30 мс, отказы/мониторинг/логи/обновления.
4. §2 Лента (AC#2): гипотезы из KB §2.3, fan-out on write vs read vs микс, celebrity problem, кэш лент в Redis, read-your-writes, медиапайплайн, CDN.
5. §3 Мессенджер (AC#3): connection-шлюзы и реестр маршрутизации, доставка через шину с партиционированием по dialog_id, seq-нумерация и дедуп, presence, офлайн-синхронизация.
6. §4 Медиа-хостинг (AC#4): resumable upload → S3 → очередь → транскодинг ladder + сегменты, lifecycle блобов, CDN + signed URLs, ABR (HLS/DASH), async-счётчики.
7. Финал: связанный-документы футер, проверка перекрёстных ссылок (methodology, KB, training/README), коммит.
<!-- SECTION:PLAN:END -->

## Implementation Notes

<!-- SECTION:NOTES:BEGIN -->
Решения: (1) §1 — дословный конспект решения статьи Яндекса (текст статьи получен из сети, все числа/DDL/алгоритмы сверены с первоисточником: диалог требований, кодирование 36^6→7 симв., Oplog, majority-коммит+GC, L1 LRU, RPS limiter с leaky bucket и снимками раз в 100 мс, LAT actuator, 25 воркеров/9×4 ДЦ/43 сервера, бюджет 130 мс из 150); (2) §§2–4 — авторские разборы по тому же 6-этапному фреймворку; числа ленты согласованы с примером KB §2.3, медиа — с KB §2.4 (без дублирования — перекрёстные ссылки); (3) каждый разбор завершается блоком «трейдоффы, которые должны прозвучать» (для §1 — «чему учит эталон»), схемы — ASCII-каркас для доски. Верификация: скрипт-проверка наличия всех ключевых элементов по каждому AC — ALL OK; перекрёстные ссылки из KB §2.2/§2.3, methodology §5/§6 и training/README.md на classic-designs.md сходятся (§1=URL shortener, §2=лента, §3=мессенджер, §4=медиа).
<!-- SECTION:NOTES:END -->

## Final Summary

<!-- SECTION:FINAL_SUMMARY:BEGIN -->
Создан applications/yandex-codenv/system-design/classic-designs.md (435 строк): 4 эталонных разбора по 6-этапному фреймворку методички — §1 URL shortener (полный конспект решения из статьи Яндекса habr 564132: требования-диалог, кодирование, control/data plane, DDL Account/Link/Oplog, KV-зеркало с majority-коммитом, RPS limiter на leaky bucket, расчёт 43 серверов, сценарии отказов и обновления), §2 лента (fan-out write/read/микс, celebrity, кэш лент, медиапайплайн, CDN), §3 мессенджер (gateway+registry, доставка через шину с seq per dialog, presence, офлайн-синхронизация), §4 медиа-хостинг (resumable upload, транскодинг сегментов, S3+lifecycle, CDN+ABR, асинхронные счётчики). Верифицировано скриптом по ключевым элементам всех 4 AC — ALL OK; ссылки из соседних документов сходятся.
<!-- SECTION:FINAL_SUMMARY:END -->
