As Web Services have become the integration platform of choice for enterprise applications. Those applications by their very nature of their enterprise-scale components can be very complex in structure, which is compounded by the need to share common data or context across business processes supported by those applications. Those processes may be very long lived, and may contain periods of inactivity, for example where constituent services require user interactions. In response to these issues, WS-CAF (Web Services Composite Application Framework) was first publicly released in July 2003 after almost two years of effort, and has broad industry support from the likes of Iona, Oracle, Sun, and a host of others, and is now under the remit of an OASIS standardisation effort as the WS-CAF Technical Committee. The WS-CAF specifications are suite of protocols designed to provide the necessary framework for composing Web Services into larger aggregate business processes. Given that WS-CAF is the first framework of its kind to make its way into standardisation, it is important to understand the principles underpinning it. This article provides a high-level view of WS-CAF starting from the bottom up, explaining the layered architecture of the trio of specifications that comprise WS-CAF, and demonstrating how each of the specifications can be used in its own right or as a whole to provide a rich framework for building reliable composite applications.