Магазин событий - Event store

An магазин событий это тип база данных оптимизирован для хранения событий.

Концептуально, в магазине мероприятий только События досье или политика хранятся. Идея заключается в том, что досье или политика могут быть составлены на основе этих событий. События (и соответствующие им данные ) - единственные «настоящие» факты, которые следует хранить в базе данных. В реализация всех других объектов можно получить из этих событий. В код создает экземпляры этих объектов в памяти. В базе данных хранилища событий это означает, что все объекты, которые должны быть созданы, являются не хранится в базе данных. Вместо этого создаются экземпляры этих объектов 'на лету 'в памяти кодом на основе событий. После использования этих объектов (например, показанных в пользовательский интерфейс ) созданные объекты удаляются из памяти.

Например, концепция хранилища событий базы данных может быть применена к страховые полисы или пенсионные досье. В этих политиках или досье экземпляр каждого объекта, составляющего досье или политику ( человек, партнер (s), должности и т. д.) могут быть получены и могут быть созданы в памяти на основе событий реального мира.

Важной частью базы данных хранилища событий является то, что каждое событие имеет двойную Лента новостей: Это позволяет хранилищам событий исправлять ошибки событий, которые были введены в базу данных хранилища событий ранее.

  • Действительная дата - это дата, когда событие стало действительным.
  • Дата транзакции - это дата, когда событие вводится в базу данных.

Другой важной частью базы данных хранилища событий является то, что сохраненные события не могут быть изменены. После сохранения ошибочные события больше не изменяются. Единственный способ изменить (или лучше: исправить) эти события - создать экземпляр нового события с новыми значениями и использовать двойную шкалу времени. Корректирующее событие будет иметь новые значения исходного события с данными события этого исправленного события, но с другой датой транзакции. Этот механизм обеспечивает воспроизводимость в каждый момент времени, даже в период до того, как произошла коррекция. Также позволяет воспроизводить ситуации на основе ошибочных событий (при необходимости).

Одним из преимуществ концепции хранилища событий является то, что обработка эффектов задним числом событий (событий, которые вступают в силу до предыдущих событий и которые могут даже сделать их недействительными) намного проще. В обычных базах данных обработка задним числом событий для исправления предыдущих ошибочных событий может быть болезненной, поскольку часто приводит к откату всех предыдущих ошибочных транзакций и объектов и сворачиванию новых, правильных транзакций и объектов. В хранилище событий сохраняется только новое событие (и соответствующие ему факты). Затем код заново определит транзакции и объекты на основе новых фактов в памяти.

Хранилище событий упростит код в том смысле, что откат ошибочных ситуаций и сворачивание новых, правильных ситуаций больше не нужны.

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

внешние ссылки

Смотрите также