The microservice architecture functionally decomposes an application into a set of services. Each service has its own private database that’s accessible only indirectly through the services API. Consequently, implementing queries and transactions that span multiple services is challenging. In this session, you will learn how to solve these distributed data management challenges by using asynchronous messaging. The presentation describes how to implement transactions with sagas, which are sequences of local transactions coordinated by use of messages. You will learn how to implement queries using command query responsibility segregation (CQRS), which uses events to maintain replicas, and will hear about the key role messaging plays in a microservice architecture.