Этап 12 из 15 · ≈ 6 ч

Согласованность и CAP

Основа с Middle

CAP и PACELC, уровни согласованности, CQRS и Event Sourcing.

Что важно знать

  • CAP: при разделении сети — либо согласованность, либо доступность.
  • PACELC: и без разделения — выбор между задержкой и согласованностью.
  • Итоговая согласованность — данные сходятся со временем; читать свои записи — отдельное требование.
  • CQRS: разные модели для записи и чтения; Event Sourcing — состояние как последовательность событий.

Критерии освоения

Middle ≈ 6 ч

  • Объясняет CAP и PACELC и сильную и итоговую согласованность на примерах

Практика. Для пяти функций маркетплейса определить, где нужна сильная согласованность, а где достаточно итоговой.

Senior ≈ 6 ч

  • Выбирает модель согласованности для частей системы по требованиям бизнеса
  • Объясняет CQRS и Event Sourcing и когда они оправданы

Практика. Спроектировать модуль с CQRS (запись и проекции для чтения) и описать задержку согласования и её влияние на пользователя.

Проверка знаний

Войдите, чтобы пройти тест: сданный тест отмечает тему пройденной на карте и в ИПР.

Вопросы с собеседований

Смотреть все
Что описывают три буквы в CAP?Junior

C — согласованность (каждое чтение видит последнюю запись), A — доступность (каждый запрос получает ответ), P — устойчивость к разделению сети.

Полный разбор
Что утверждает CAP-теорема?Middle

При разделении сети (P) распределённая система выбирает: отвечать, рискуя отдать устаревшее (A), или отказать, сохранив согласованность (C).

Полный разбор
Когда Event Sourcing и полный CQRS применять не стоит, и что делать вместо этого?Senior

Не нужно в CRUD-домене, при требовании немедленной согласованности и без опыта эксплуатации асинхронных конвейеров. Вводить по нарастающей и точечно.

Полный разбор
Что разделяет подход CQRS?Junior

Команды меняют состояние, запросы возвращают данные — и модели для них разные.

Полный разбор
Что описывает eventual consistency?Middle

Если записи прекратятся, все реплики со временем придут к одному значению. Сразу после записи разные клиенты могут видеть разное.

Полный разбор
Почему условие R + W > N само по себе не даёт линеаризуемости?Senior

Кворум гарантирует свежесть, но не порядок: прерванные и конкурентные записи, а также нестрогий кворум ломают линеаризуемость.

Полный разбор

Разборы темы

← Вся карта «Backend-разработчик»

Партнёр платформы

Разбор собеседования с sotto

После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.

Разбор собеседования