Design Twitter (X)
PremiumСистемный дизайн ленты Twitter/X. Snowflake IDs, гибридный fanout (write для обычных пользователей, read для celebrities), Redis hot timeline + Cassandra durable. Кейс уровня senior-собеса.
Что внутри
Twitter-like home timeline: корректная reference architecture
Что именно моделируется
Это учебный дизайн сервиса коротких постов и домашней ленты, а не заявление о текущих внутренних компонентах X. Исторические материалы Twitter подтверждают свойства Snowflake, наличие graph storage, distributed key-value storage и timeline cache; конкретные threshold, SLO и topology ниже являются design choices упражнения.
Функции v1: создать текстовый пост, получить домашнюю ленту по cursor, скрыть удаленные или недоступные посты. Likes, search, media pipeline и ads вынесены за границу. Лента eventually consistent, но подтвержденный пост нельзя молча потерять между базой и событием.
Write path и transactional outbox
Tweet Service в одной транзакции записывает canonical tweet и outbox event с уникальным event_id. CDC Relay читает committed outbox/WAL и публикует событие в Kafka. Такой путь устраняет опасное окно DB→Kafka dual write: после ответа 201 durable outbox либо уже опубликован, либо будет допубликован после recovery.
Relay может повторить событие, поэтому exactly-once здесь не обещается. Projector и Fanout используют event_id для dedupe, а materialized rows имеют естественные ключи tweet_id и (reader_id, tweet_id). Это at-least-once delivery плюс idempotent effects.
Практический паттерн курса: Transactional Outbox. Это explore-страница, поэтому ссылка обычная Markdown, а не course directive.
Полный разбор, ADR-ы, сценарии и deep dives — после оплаты бандла.
System Design Cases
Полный доступ ко всем кейсам бандла
Premium открывает полный разбор для подготовки к интервью
- Где архитектура ломается первой и как защищать выбранный дизайн.
- Конкретный capacity math: размеры данных, throughput и пороги масштабирования.
- Trade-off-ы в стиле ADR, которые легко превращаются в структурированный ответ.
- Запускаемые сценарии: happy path, отказы, retry и recovery.
Регистрация бесплатна. Оплата — следующим шагом, из этого же кейса.
Уже есть аккаунт?