awesome-everything EN
↑ Обратно к восхождению

Распределённые системы

Распределённый капстоун: спроектируй отказоустойчивый пайплайн

Суть Капстоун-сборка — спроектируй и укрепи отказоустойчивый пайплайн заказа/оплаты, складывающий кворум, выборы лидера, часы, саги и ретраи, и докажи, что он переживает провалы в швах.
Высота — путь к senior
НольJuniorMiddleSenior
Ты на senior-высоте — в орбите
◷ 240 min

Читать про провалы композиции — не то же, что строить пайплайн, который их переживает. Спроектируй небольшой отказоустойчивый сервис заказа/оплаты, связывающий каждый примитив трека вместе, затем инжектируй сбои — приостановленный лидер, потерянный ответ, шторм ретраев — и докажи, что швы держат.

Цель

Преврати весь трек в одну работающую систему: выбери модель согласованности, сделай записи долговечными кворумом, координируй избранным лидером за fencing-токенами, откатывай сагами, ограничь ретраи бюджетом и сделай каждый межсервисный эффект идемпотентным — затем проверь под инжектированным сбоем, а не на бумаге.

Проект
0 из 7
Цель

Спроектируй и построй небольшой, но реалистичный пайплайн заказа/оплаты минимум на три сервиса (Order, Payment плюс Inventory или Shipping), координируемый сагой, и продемонстрируй — с инжектированными сбоями — что он переживает приостановленного устаревшего лидера, потерянный ответ и шторм ретраев без двойного эффекта или потерянного эффекта.

Требования
Критерии приёмки
  • В сценарии приостановленного лидера запись устаревшего лидера отвергается проверкой fencing, а состояние, продвинутое новым лидером, цело — показано логом отвергнутого токена.
  • В сценарии потерянного ответа повторённая компенсация даёт ровно один эффект: получатель возвращает первый результат на дублирующем ключе, доказано единственной записью возврата несмотря на два физических вызова.
  • В шторме ретраев бюджет ретраев сбрасывает лишние повторы, и сервис вниз восстанавливается — показано графиком нагрузки, где трафик ретраев остаётся ограниченным вместо усиления.
  • Дашборд сигналов швов (или логированный эквивалент), покрывающий consumer lag, p99 кворумной записи/чтения, leader churn и расход бюджета ретраев, с короткой заметкой, какой сигнал поймал бы каждый инжектированный сбой первым.
Senior-стретч
  • Добавь chaos-тест, случайно комбинирующий два сбоя сразу (например, пауза лидера во время шторма ретраев), и подтверди отсутствие двойного или потерянного эффекта за длительный прогон.
  • Добавь on-call runbook: как триажить каждый сигнал шва, наиболее вероятный провал композиции за ним и шаг проверки, подтверждающий фикс.
  • Поменяй модель согласованности на одном куске состояния (например, переведи inventory с eventual на линеаризуемую) и задокументируй цену латентности и доступности, заплаченную за более сильную гарантию.
  • Добавь счётчик дублирующих эффектов (метрика, инкрементирующаяся при повторном попадании в dedup-ключ) и алертинг на него — превращая молчаливый провал композиции в видимый сигнал.
Итог

Это система, которую тебя реально попросят спроектировать и защитить: пайплайн, где каждый примитив корректен по отдельности, а инженерия — в швах. Ты выбрал модель согласованности на каждое состояние, сделал записи долговечными через R + W > N, держал координацию безопасной для single-writer избранным лидером и fencing-токенами, упорядочил шаги причинно, откатил идемпотентными компенсациями и ограничил ретраи бюджетом. Доказательство — не диаграмма, а инжектированный приостановленный лидер, чью запись отгородил fencing, повторённая компенсация, возвращающая деньги ровно раз, и шторм ретраев, который сдержал бюджет. Построй это раз на игрушечном пайплайне — и продакшен-версия станет мышечной памятью.

хоткеи развернуть
поиск
K
пред. пьеса
k
след. пьеса
j
тиры
t
это меню
?
sources3
expand
  1. 01
  2. 02
  3. 03

Trademarks belong to their respective owners. Editorial reference only.