Ensuring transactional behavior of business processes and web service compositions is an essential issue in the area of service-oriented computing. Transactions in this context may require long periods of time to complete and must be managed using non-blocking techniques. Compensations are activities executed to preserve data integrity and eliminate the effects of a process terminated by a user or that failed to complete due to another reason. This paper presents an approach to formal modeling of long-running business transactions. Our solution is based on the channel-based exogenous coordination language Reo, which is an expressive, compositional and semantically precise design language that admits formal reasoning. We illustrate how Reo c...