I am using the CQRS pattern and have come across a scenario where I need some help. To understand the issue let's say we have an entity User which has UserId, FirstName, LastName.... in an application AppA I only need to update the FirstName and for this, I have the below command:
public sealed record UpdateUserCommand(int UserId, string FirstName) : IRequest
Then I have another application AppB that another developer is working on and he is sharing the library using the CQRS pattern. From AppB the developer wants to update FirstName & LastName. The above command is changed to:
public sealed record UpdateUserCommand(int UserId, string FirstName, LastName) : IRequest
This change has broken my code in AppA. I need help to understand what is the best practice to handle such a situation. If I am understanding the CQRS correctly then shouldn't be the all commands be specific for each scenario and in this case I need to have two commands as follow?
public sealed record UpdateUserFirstNameCommand(int UserId, string FirstName) : IRequest
public sealed record UpdateUserFullNameCommand(int UserId, string FirstName, LastName) : IRequest
shouldn't I use them in each separate application? Please help me with how should I implement it.
Thanks.
Aucun commentaire:
Enregistrer un commentaire