adding support for transactions with message side-effects