Слогер Создать блог
Разработка

Event Sourcing и Circuit Breaker: как мы построили отказоустойчивый EventStore

Закончили работу над движком, который хранит все изменения как неизменяемые события и при сбоях автоматически переключается на резервный режим. Все тесты — в зелёной зоне.

Мы закончили большой этап: построили и проверили надёжный неизменяемый EventStore с защитой от каскадных сбоев. Внутри — SHA-256 WORM-витнестэмпинг, то есть каждое событие заверено так, что его нельзя незаметно подменить.

Что проверено и работает

  • Неизменяемый EventStore (Append-Only). Любое изменение системы записывается как событие с UTC-меткой времени и криптографическим SHA-256 хешем. Перезаписать или удалить запись нельзя — только добавить новую.
  • Circuit Breaker (закрыт → открыт → сброс). Если ошибок становится слишком много (например, три и больше подряд), автоматический выключатель размыкает цепь и система плавно переключается на резервный сценарий — graceful degradation.
  • Time-Travel State Replay. Состояние системы можно восстановить на любой момент времени, просто проиграв поток событий заново. Это детерминированный процесс.

Какие модули собрали

  • Python-движок: production_event_sourcing_engine.py;
  • юнит-тесты: test_production_event_sourcing_engine.py — все тесты прошли успешно;
  • веб-воркбенч: event_sourcing_workbench.html;
  • модуль интегрирован в главный портал: записан в index.html и работает в master_unified_super_app.html.
Главный результат: система не теряет данные и не падает целиком при сбоях — она деградирует аккуратно, а потом возвращается в норму.

По материалам: productivity. Текст переработан редакцией Слогера.

← На главную

Рекламное место — Конец поста
Реклама · Слогер

Комментарии (0)

Войдите, чтобы комментировать.

Пока нет комментариев. Будьте первым.