Страх и ненависть в распределённых системах
Если ваше приложение внезапно перестаёт помещаться в один сервер, то надо ставить еще N серверов рядом, ведь ничего же сложного, разве что-то может пойти не так?
Но встав на шаткую дорожку создания распределенной системы с неокрепшим умом, можно с удивлением обнаружить, что ваш кластер внезапно теряет и портит данные, страдает раздвоением мозга и живет своей насыщенной жизнью против вашей воли. Этот доклад попытается прояснить:
- Какие проблемы встречаются при создании распределенных систем;
- Как можно налажать и допустить типичные ошибки при проектировании;
- Матчасть о целостности, CAP-теореме, линеаризации, консенсусе и CRDT;
- Как все эти знания применять на практике и какие бывают инструменты для облегчения нелегкой жизни разработчика распределенных систем.
В процессе рассуждений и откровений для закрепления материала мы вживую напишем простенькую redis-подобную распределенную систему на Scala и Akka в 100 строк, а потом достанем Jepsen и весело её разломаем, заставив терять данные.

Разработчик распределенных систем в компании Sociohub/DSR. Прошел тернистый путь от дизайнера-неудачника до C++ => Java => Scala программиста, в процессе защитив диссертацию. Любит все распределенное и отказоустойчивое. Активист воронежской Scala User Group.
Презентация

Видео
Все доклады