Event Sourcing Befehl oder Event von externem System?

In den meisten Fällen verstehe ich die Unterscheidung zwischen einem Befehl und einem Ereignis in einem CQRS + ES-System. Es gibt jedoch eine Situation, die ich nicht herausfinden kann.

Angenommen, ich baue ein persönliches Finanzverfolgungssystem auf, in das ein Benutzer Belastungen / Gutschriften eingeben kann. Dies sind eindeutig Befehle, und sobald sie validiert sind, wird das Domänenmodell aktualisiert und ein Ereignis veröffentlicht. Nehmen wir jedoch an, dass die Kredit- / Debitinformationen auch direkt von externen Systemen stammen, z. Der Florist des Benutzers sendet eine Nachricht, dass er die Kreditkarte des Benutzers für seine wiederkehrende Lieferung zum Muttertag belastet hat. In diesem Fall scheint die Nachricht ein Ereignis zu sein (die Aufladung ist bereits erfolgt), aber es ist möglich, dass die Nachricht fehlerhaft ist und zurückgewiesen wird. Also ist es wirklich ein Befehl? Aber dann muss es eine Möglichkeit geben, ein ACK / NACK zu senden, was hier nicht der Fall ist (der Florist sendet die Nachricht erst, wenn er weiß, dass die Abbuchung stattgefunden hat).

EDIT: Nur zur Klarstellung, ich spreche nicht über das externe System, das etwas über meine Ereignisse und / oder Befehle weiß. Ich habe eine Komponente, die Daten vom externen System empfängt und dann ein Ereignis veröffentlichen oder einen Befehl senden muss. Die Frage ist, welches Ereignis oder welchen Befehl meine Komponente verwenden soll.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage