Uit wat ik heb gelezen, hebben CQRS-ontwerpen betrekking op asynchrone opdrachten waarbij opdrachten in een wachtrij worden geplaatst. De gebruiker gaat ervan uit dat alles goed is en de gebruikersinterface peilt of via een timer wat feedback krijgt als alles werkt of niet.
Hoe zou dit werken als ik een gebruikersinterface had waarin ik mappen in een boom sleep? Ik zou kunnen dat één gebruiker een map verwijdert terwijl een andere gebruiker er een map naartoe sleept (om er een submap van te maken).
Dus vanuit de gebruikersinterface kon ik laten zien dat het slepen heeft plaatsgevonden en vervolgens in een timercontrole om te zien of mijn leesmodel is bijgewerkt (dwz controleer of de bovenliggende map van de gesleepte map correct is en ik weet dat het heeft gewerkt ).
Als de gebruiker een aantal sleepbewerkingen heeft gedaan, zou ik een lijst van deze bewerkingen in de gebruikersinterface moeten bewaren en het leesarchief moeten controleren (alle geslaagde opdrachten uit de lijst verwijderen).
Er zijn misschien betere manieren om dit te doen.
Het lijkt gewoon veel werk in de gebruikersinterface en meer vatbaar voor fouten, terwijl als ik gewoon een synchroon commando voer en als alles in orde is, ik verder ga naar mijn volgende operatie.