This document provides an overview of architecting microservices using .NET. It discusses why microservices are used, common architecture patterns, and implementation considerations. Key points include: - Independent, loosely coupled services that are fault tolerant and easy to scale are goals of a microservices architecture. - Communication between services should be kept simple, using either synchronous HTTP or asynchronous messaging. Synchronous calls can lead to temporal coupling so circuit breakers and failure handling are important. - Domain-driven design principles like bounded contexts and separating queries from commands (CQRS) can help define appropriate service boundaries and responsibilities. - Event sourcing avoids shared state and two-phase commits by persisting a sequence of events rather than