02-social-feed: спроектируй и защити приложение на ленте
Практический проект: подготовь полный дизайн-док соцприложения с лентой, уведомлениями и presence — выбери стратегии fan-out, гибрид знаменитостей, гарантии доставки и порядок — затем обоснуй каждый порог числом и проверь рискованнейшее прототипом.
Знать каждый кейс по отдельности — не то же, что собрать их в одну связную систему, которую подпишет стафф-инженер. Возьми соцприложение реальной формы, напиши дизайн-док от начала до конца — лента, уведомления, presence, с каждым выбором fan-out и консистентности, обоснованным числом — затем докажи два рискованнейших решения прототипом, а не отмашкой.
Этот проект делает юнит операционным: ты интегрируешь четыре кейса в одну систему, решаешь каждый компромисс против оценки и меряешь ради подтверждения двух предсказаний, рискованнейших к укусу — стоимости fan-out знаменитости и гарантии доставки at-least-once-плюс-дедуп.
- 01Какие оценки нагрузки двигают дизайн ленты и уведомлений и как каждая становится решением?
- 02Как валидировать два рискованнейших решения в прототипе?
- 03Почему проектировать и оценивать сначала, затем прототипировать, а не строить сразу?
Этот проект собирает четыре кейса в одну систему и заставляет каждое решение опираться на число. Ты пишешь дизайн-док соцприложения на ленте: оцени QPS чтения ленты, записи постов и уведомлений (среднее и пик, одна значащая цифра), выведи отношение чтение:запись и используй его для выбора fan-out-on-write дефолтом ленты с порогом знаменитости, что задаёт арифметика, плюс ограниченный feed cache и курсорную пагинацию. Ты специфицируешь пайплайн уведомлений (асинхронный fan-out, очереди по каналам, ключ идемпотентности, ретрай+джиттер в DLQ, транзакционная приоритетная дорожка) с явной гарантией at-least-once-плюс-дедуп и заявляешь, какие поверхности eventually consistent и почему. Затем ты закрываешь петлю: прототип, показывающий, как шторм записей знаменитости исчезает под гибридом, и прогон с впрыском отказов, где ключ идемпотентности схлопывает дубли, пока DLQ ловит отказы. Сначала оценка, потом валидация — салфетка говорит форму и рискованнейшие предсказания; прототип их подтверждает. Инженер, построивший это раз, собирает соцсистемы осознанно, а не открывает хвост знаменитостей в проде.
Что-то непонятно?
Задай вопрос по этому уроку. Вопросы анонимны и попадают напрямую автору — урок станет лучше.