The (original) design purpose of stream is to represent an Aggregate Root and this is the consistency boundary. Writing to >1 stream in a transaction breaks this and is not an officially supported scenario. Besides, not all persistence engines support .net transactions, let alone 'distributed' transactions (DTC).
They purpose of the transaction support was really to allow a user to interact with another piece of infrastructure transactionally, i.e. read from a queue or post to an NServiceBus endpoint.
When a user tries to update more than one stream in a single transaction, we should throw.
Some people like to run with scissors, so I am open to allowing an override to prevent the exception from being thrown that must be explicitly set during wireup. Anyone doing this does so at their own risk and without support.
The (original) design purpose of stream is to represent an Aggregate Root and this is the consistency boundary. Writing to >1 stream in a transaction breaks this and is not an officially supported scenario. Besides, not all persistence engines support .net transactions, let alone 'distributed' transactions (DTC).
They purpose of the transaction support was really to allow a user to interact with another piece of infrastructure transactionally, i.e. read from a queue or post to an NServiceBus endpoint.
When a user tries to update more than one stream in a single transaction, we should throw.
Some people like to run with scissors, so I am open to allowing an override to prevent the exception from being thrown that must be explicitly set during wireup. Anyone doing this does so at their own risk and without support.