Skip to content

Third-party external integrations and domain #215

Answered by idugalic
TwiceII asked this question in Q&A
Discussion options

You must be logged in to vote

Hi Twicell,

The short answer is that Decider, View, and Saga should stay pure / without side effects of any kind.

SagaManager should be responsible for integrating:

  • two aggregates
  • aggregate and third-party service
  • kafka/rabbitMq listener and the aggregate

SagaManager is acting as an anti-corruption layer in this case, translating:

  • events of one aggregate into command of the second aggregate
  • events of the aggregate into HTTP service calls
  • messages/responses from Kafka/RabbitMQ into commands of the aggregate.

In this way, the integration is minimizing the runtime coupling between two systems.
Observe how that response/message from the third-party system is always translated into a Comma…

Replies: 1 comment 8 replies

Comment options

You must be logged in to vote
8 replies
@idugalic
Comment options

@idugalic
Comment options

@TwiceII
Comment options

@idugalic
Comment options

@idugalic
Comment options

Answer selected by TwiceII
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
2 participants