Распределённые системы: что ломается и как договориться

Что происходит, когда система живёт на нескольких узлах: частичные отказы, ненадёжные часы и сеть, линеаризуемость и CAP, консенсус и кворумы, сквозной аргумент и правда об exactly-once.

Зачем. Как только сервис перестаёт быть одним процессом на одной машине, появляется класс проблем, которых в монолите не было: узел не отвечает — но жив ли он, часы разошлись, сообщение пришло дважды. Этот раздел — про природу этих проблем и про то, какие гарантии вообще достижимы. Входит в программу подготовки.

Три статьи: сначала что именно ломается, потом какие гарантии можно купить, потом как рассуждать о корректности целиком.

Статьи раздела

  1. Проблемы распределённых систем — частичные отказы, ненадёжные часы и сеть, истина по кворуму.
  2. Согласованность и консенсус — линеаризуемость, CAP и почему за всеми задачами согласия стоит одна общая.
  3. Корректность в распределённой системе — сквозной аргумент, правда об exactly-once, целостность против своевременности.

Связанное