Как разделить EntityModel между записью и чтением в CQRS. - PullRequest
0 голосов
/ 10 декабря 2018

Я испытываю постоянство Akka с учетом CQRS.На стороне записи у меня есть сущность типа

case class Evt(data:String)

Мой постоянный код выглядит как

persist(Evt(s"${data}"))

Все работает на стороне записи.

Яиспользуя плагин журнала Redis.

Когда я пытаюсь прочитать запись журнала на стороне чтения, он ищет класс WriteModel.Evt и видит ошибку ниже

[akka.dispatch.Dispatcher] WriteModel.Evt java.lang.ClassNotFoundException: WriteModel.Evt

Сохраняю ли я событиенадлежащим образом?

Какова наилучшая практика для разделения контактов между Сторонами записи и чтения / агрегатора?

1 Ответ

0 голосов
/ 14 декабря 2018

Сначала вам нужно решить, какой формат / протокол сериализации использовать.

Постоянство Akka работает из коробки с сериализацией Java, что хорошо для быстрого подтверждения концепции, но не для производственных систем.Вы можете выбрать из protobuf, avro и даже json.Есть много протоколов сериализации на выбор.Отметьте this out.

В зависимости от этого вы выбираете, как поделиться схемами в случае protobuf или avro.

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

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

...