Потоки с версиями
Храните события в упорядоченных потоках. Используйте версии для оптимистического контроля конкуренции, а ключи идемпотентности — при повторных запросах на запись.

Храните изменения как события домена и восстанавливайте из них состояние агрегатов. Chronacta предоставляет потоки событий, контроль конкурентной записи, подписки и проекции — в вашей инфраструктуре.
Записывайте и читайте события через API, построенный вокруг потоков и версий, вместо самостоятельной реализации операций хранилища событий.
Указывайте ожидаемую версию потока. Если поток изменился, Chronacta отклонит запись, чтобы приложение могло обработать конфликт.
Используйте проекции для подготовки данных к запросам. Пересобирайте производные модели из сохранённых событий при изменении логики проекций.
Запускайте Chronacta в своей инфраструктуре. Выберите один узел или рассмотрите Enterprise для высокой доступности и дополнительных средств эксплуатации.
Chronacta — сервер-хранилище событий. Приложение обрабатывает команды и обеспечивает соблюдение инвариантов агрегатов; Chronacta сохраняет полученные события и предоставляет их для чтения, проекций и подписчиков.
Храните события в упорядоченных потоках. Используйте версии для оптимистического контроля конкуренции, а ключи идемпотентности — при повторных запросах на запись.
Читайте отдельный поток или общий журнал событий. Устойчивые подписки сохраняют позицию обработки при перезапуске потребителя.
Обрабатывайте сохранённые события для построения моделей чтения. Повторно воспроизводите нужную историю, чтобы пересобрать производные данные.
Начните с Chronacta на одном узле. Enterprise добавляет высокую доступность, интеграции безопасности и дополнительные средства эксплуатации.
В Event Sourcing события служат источником истины, а не дополнительным журналом аудита. Приложение восстанавливает из них состояние агрегатов, а проекции строят модели чтения. Такой подход полезен, когда переходы состояния имеют значение для предметной области.
Представляйте оформление заказа, изменение его состава, отмену и отгрузку отдельными событиями домена с учётом инвариантов агрегата.
Явно описывайте финансовые операции и рассчитывайте остатки и другие модели чтения на основе записанных событий.
Восстанавливайте переходы, которые привели обращение к текущему состоянию, и применяйте правила предметной области к следующим командам.
Стройте списки, отчёты и поисковые индексы из одной истории событий, не меняя поток агрегата.
Обработчик команды получает запрос на отгрузку заказа. Он загружает агрегат заказа, восстанавливает его состояние из событий и вызывает проверку операции в агрегате. Если правила допускают отгрузку, приложение добавляет OrderShipped с ожидаемой версией потока. Chronacta сохраняет событие. Проекция обновляет список заказов, а подписчик может уведомить другой сервис.
Правила предметной области остаются в приложении. Chronacta предоставляет механизмы хранения и доставки, необходимые для использования событий домена как источника истины.
Начните с конкретной операции предметной области и проверьте весь путь: от команды до обновлённой модели чтения.
Выделите агрегат, его инварианты, принимаемые команды и события, описывающие переходы состояния.
Запустите сервер, добавьте события с ожидаемой версией и восстановите состояние агрегата, прочитав поток.
Постройте модель чтения. Проверьте перезапуск потребителя, повторную доставку и пересборку производных данных.
Оцените требования к производительности, восстановлению и доступности. Выберите Chronacta или Enterprise в соответствии с этими требованиями.
Изучите архитектуру, сравните варианты развёртывания или начните реализацию первого потока событий.