Transactions are the key to building robust, high-quality service-oriented applications. WCF provides simple, declarative transaction support for service developers, enabling you to configure parameters such as enlistment and voting, all outside the scope of your service. In addition, WCF allows client applications to create transactions and to propagate transactions across service boundaries. This chapter starts by introducing the problem space transactions address and the basic transactions terminology, and then discusses the support for transactions and transaction management offered by WCF. The rest of the chapter is dedicated to transactional programming models, both by services and clients, and how transactions relate to other aspects of WCF, such as instance management and callbacks.