Проектирование отказоустойчивой аналитики в реальном времени

Вам нужны дашборды с актуальными данными. Они должны оставаться точными по мере роста системы. Event sourcing решает эту задачу.

Схема работы:

  • Producers: Сервисы отправляют доменные события.
  • Event Bus: Kafka или Kinesis сохраняют события в логе.
  • Processors: Они читают лог и обновляют модели чтения (read models).
  • Read Models: Postgres или Redis хранят итоговые метрики.
  • Query API: Ваш дашборд забирает данные отсюда.

Ключевые правила проектирования:

  • Делайте события неизменяемыми. Никогда не обновляйте событие.
  • Используйте ключи идемпотентности. Это предотвращает появление дубликатов данных.
  • Версионируйте схемы. Это предотвращает поломки системы.
  • Используйте детерминированные проекции. Это обеспечивает согласованность данных.

Как это реализовать:

  • Определите ключевые события.
  • Выберите инструменты хранения.
  • Создайте начальные проекции для метрик.
  • Реализуйте дедупликацию.
  • Создайте реестр схем (schema registry).
  • Отслеживайте задержку событий (event lag).

Такая архитектура позволяет масштабировать систему и проводить аудит данных. Вы сохраняете полную историю каждого изменения.

Источник: https://dev.to/therizwansaleem/designing-a-durable-event-sourced-analytics-platform-for-real-time-dashboards-58fd