Консенсус на пальцах, или Как договориться в распределенной системе Архитектуры, масштабируемость

Доклад принят в программу конференции
Владимир Протасов
Яндекс

Технический менеджер в Яндекс.Облаке, много пишет на Python. Когда не пишет, активно работает со студентами, развивает сообщества и участвует в организации конференций.
Создатель московских Python-завтраков.

telegram: @eoranged
Тезисы

Договариваться сложно. Например, мы с коллегами до перехода на удаленку часто не могли договориться, куда идти обедать сегодня. Машинам не легче: в распределенной системе всё может пойти не так, а отсутствие договоренности может стоить потери данных и денег.

Почти все встречались с упоминанием процесса выбора нового мастера при отказе существующего, многие слышали о распределенных транзакциях, некоторые даже знают страшные слова "Paxos", "Raft" и Bitcoin-консенсус. Но понимаете ли вы, как они работают и зачем нужны?

Я постараюсь объяснить как эти алгоритмы устроены и зачем нам, рядовым разработчикам, это знать.
Если останется время, то разберем нюансы реализации в различных приложениях.

Другие доклады секции Архитектуры, масштабируемость