В то время как каждая микросервис обычно будет иметь свои собственные данные - определенные объекты должны быть согласованы между несколькими службами.
Для такого требования к согласованности данных в высокораспределенном ландшафте, таком как архитектура микросервисов, каковы варианты дизайна? Конечно, мне не нужна архитектура общей базы данных, где один БД управляет состоянием во всех сервисах. Это нарушает принципы изоляции и общего принципа.
Я понимаю, что микросервис может публиковать событие, когда сущность создается, обновляется или удаляется. Все другие микросервисы, которые заинтересованы в этом событии, могут соответственно обновлять связанные объекты в своих соответствующих базах данных.
Это работает, однако это приводит к большому количеству тщательных и скоординированных усилий по программированию в службах.
Может ли Akka или любая другая инфраструктура решить этот вариант использования? Как?
EDIT1:
Добавление диаграммы ниже для ясности.
В принципе, я пытаюсь понять, если сегодня есть доступные фреймворки, которые могут решить эту проблему согласованности данных.
Для очереди я могу использовать любое программное обеспечение AMQP, такое как RabbitMQ или Qpid и т.д.
Для структуры согласованности данных я не уверен, может ли в данный момент помочь Akka или любое другое программное обеспечение. Или этот сценарий так необычен, и такой анти-шаблон, который никогда не нужен никаким структурам?