2015-07-23 1 views
0

Comment gérez-vous la manipulation de données dans CQRS? Je pense à la commande, qui a un champ byte array (ou inputstream). Puis, dans le gestionnaire de commandes je peux traiter le fichier (l'enregistrer dans le système de fichiers) et envoyer l'événement, où serait le chemin vers le fichier enregistré. Est-ce que cette approche est correcte, ou devrais-je utiliser quelque chose de différent?Transfert de fichiers CQRS/manipulation de données

Merci

Répondre

1

CQRS est silencieux sur le sujet de la « manipulation de données », sauf pour dire que le « côté écriture » de l'application doit être séparé du côté « lire ». Il n'y a pas de pratique définie, et cela dépendra beaucoup de votre domaine.

Votre domaine contient-il les concepts de 'fichiers' et de 'tableaux d'octets'? Probablement pas, donc il semble que vous construisez une couche anti-corruption qui valide et traduit une source externe de données en commandes à émettre contre votre domaine.

+0

Et est-ce correct de mettre la logique à la couche anti-corruption? business logic = "Les données doivent être placées quelque part sur la base de quelque chose" Je pense que la couche anti-corruption est une autre "couche de service" où je peux transformer "message externe" en "message interne". – bilak

+0

@bilak Eh bien c'est difficile à dire sans connaître le domaine. Mais les ACL font ce que leur nom implique: protéger le domaine contre les commandes qui proviennent du contexte. Si votre logique d'entreprise est quelque chose d'implicite dans le contexte mais doit être explicitement indiquée en dehors du contexte, alors elle doit vivre dans la liste de contrôle d'accès. – Matt