2017-08-03 1 views
1

J'essaie de développer des microservices pour le processus de commande/transaction en utilisant le concept d'approvisionnement d'événements. Le personnel peut passer une commande/transaction pour un client par téléphone. Le système enregistre également le nombre de commandes groupées par client. Il utilise AWS Kinesis pour envoyer l'identifiant du client dans l'événement OrderCreated au service des données client afin que nous puissions incrémenter le nombre de commandes créées. Nous séparons le traitement des commandes et le client en fonction du concept DDD. Mais, nous devons anticiper les erreurs humaines lorsque le personnel sélectionne un mauvais identifiant client pour la commande. Ainsi, il y a une fonctionnalité pour changer le client pour la commande connexe.Chorégraphie d'approvisionnement d'événements liée à plusieurs enregistrements

Le problème est que l'événement orderUpdated ne contient que les dernières données de la commande. Cela signifie que l'événement n'a que le nouvel identifiant client. Nous pourrions incrémenter le nombre de commande pour un nouveau client. Mais, nous devrions décrémenter le numéro de commande pour l'identifiant client précédent.

Comment résoudre ce problème? Pourriez-vous me donner quelques suggestions?

Merci à l'avance

+0

Où le nombre de commandes clients est-il stocké? Est-il également stocké dans le consommateur qui consomme des événements orderUpdated et orderCreated? –

+0

le nombre de commandes client est stocké dans l'instantané des données client. le consommateur consomme simplement l'événement et détermine si le nombre de commandes client doit être incrémenté ou décrémenté. Avez-vous des suggestions pour le rendre meilleur? – Benedict

Répondre

1

Il sonne comme un événement OrderUpdated ne suffit pas de granulés pour répondre à vos besoins. Sur la base des informations que vous avez fournies, vous souhaitez probablement avoir un événement plus spécifique, tel que OrderCustomerChanged, qui contient à la fois le nouvel et l'ancien identifiant client.

+0

est-il correct pour l'événement de domaine de commande (orderCreated, orderUpdated et orderCustomerChanged) ont une structure de données différente? – Benedict

+1

Oui: chaque type d'événement est indépendant et peut avoir la structure la mieux adaptée. – Codescribler

+1

Belle réponse simple et souvent pas si évidente. –