CQRS - Is it "allowed" to publish commands from the domain and/ or read site?
cqrs, domain-driven-design
Solution
In many cases it makes absolute sense to send commands as a result of another event inside the domain. For example a Saga (as an orchestrator/coordinator of a long-running process) would subscribe to events and submit new commands.
Also system events, like a timeout or an exception or some other circumstance could produce new commands.
In my opinion CQRS woudn't work at all if only a "client" was allowed to submit commands.
Problem
I'm trying to grasp more of the cqrs concepts. Are commands only sent from clients or is it common to send commands from the domain and/ or projection event listeners? Let's say that I want to start another business process based on some event.