In CQRS/ES, can a command create another command?

In CQRS/ES, a command is sent from the client to the server and routed to the appropriate command handler. That command handler loads an aggregate from its repository, and calls some method on it, and saves it back to the repository. Events are generated. An event handler/saga/process manager can listen to these events in order to issue commands.

Exposing capabilities with a collection of enum values or with boolean functions

High-level explanation I have an object with some methods: public class Foo { public void Bar() { } public void Baz() { } } These methods cannot be executed unconditionally, there is some validation to be done. I’d also like to expose these conditions to a client (user) in some way. I could do this…