This document discusses building microservices with gRPC and NATS. It begins with an introduction to microservices architecture and challenges in communication between microservices. It then covers using gRPC and Protocol Buffers to build high performance APIs, as well as using NATS for an event-driven architecture with publish-subscribe messaging. Code demos are provided for gRPC and NATS. The document concludes with a discussion of event sourcing and various messaging patterns when using NATS.