Hi,
the number of transactions created depends mainly on the infrastructure components you use. If you use the SimpleEventBus and SimpleCommandBus, everything runs in a single transaction. It's only when the Sagas run asynchronously, that extra transactions are being created.
When using an asynchronous saga manager in combination with the SimpleEventBus and SimpleCommandBus, each event will create (at most) one transaction. When multiple events arrive in quick succession, Axon will batch them together in a single transaction. The "CreateOrderCommand" will create one transaction, producing the OrderCreatedEvent. When that arrives at the SagaManager, that event is processed in another thread, and another transaction. That transaction loads the saga, and processes it. Since the SimpleCommandBus will use an existing transaction, when present, the PrepareShippingCommand and CreateInvoiceCommand will be processed in the same transaction. The events, however, are again asynchronously processed by the saga manager, creating a transaction for each event (unless batching decides to create a single one for both).
Basically, only when Axon starts processing something in another thread, it will create a transaction for that new job. Otherwise, it simply uses the transaction already bound to that thread (unless the transaction manager explicitly creates a new one, of course).
Hope this clarifies things a bit.
Cheers,
Allard