Within any event-based system, everything is a message, and they all get passed on a bus. In a future chapter, we’ll quickly put a basic library together with a simple aggregate, 1-2 commands, 1-2 events, and a simple service to show the logic between each component.
Commands are messages instructing the system to perform a task (e.g. deposit funds into an account). Do not consider them something that needs to be passed into an aggregate, as the relationship between a command and an aggregate are loosely coupled.
Events document decisions made within an aggregate. These are things that have happened, and therefore, should be recorded within a ledger.