As shown in Figure 1, whenever an application message is sent, the Client API automatically creates a context and embeds it into the message. Similarly, any transaction-aware services are able to extract that context using the service-side infrastructure and use it to perform work within the context of a particular transaction – even though that transaction was initiated elsewhere! The value of this approach is that the business logic contained within the client application and services are not peppered with transaction-processing code.