Using EventStore for “command” messaging, I could have 1 command stream for an entire BC, so that commands for all aggregates are in a single stream. Assume that in this case, I have hundreds of thousands of aggregate instances in this BC.
I was thinking about this, there could also be a command stream per aggregate. The command handler would likely subscribe to a category projection to handle all of these commands, but I’m thinking a benefit here would be increased write throughput for commands. Also I could do competing consumers on the category projection.
Any suggestions on using one approach over the other (1 command stream per aggregate type vs. 1 command stream per aggregate instance)?