Building Distributed Cloud Native Applications
Haishi Bai, Yaron Schneider

#Dapr
#Azure
#Microsoft
#CTO
#SDK
#CIO
#DCOM
#CORBA
Get the authoritative guide to Dapr, the distributed application runtime that works with new and existing programming languages alike. Written by the model’s creators, this introduction shows you how Dapr not only unifies stateless, stateful, and actor programming models but also runs everywhere—in the cloud or on the edge.
Authors Haishi Bai and Yaron Schneider with Microsoft’s Azure CTO team explain that, with Dapr, you don’t need to include any SDKs or libraries in your user code. Instead, you automatically get flexible binding, state management, the actor pattern, pub-sub, reliable messaging, and many more features. This book shows developers, architects, CIOs, students, and computing enthusiasts how to get started with Dapr.
Over the years, many distributed programming models and frameworks have been introduced, such as the Common Object Request Broker Architecture (CORBA), Microsoft Distributed Component Object Model (DCOM), COM+, Java Remote Method Invocation (RMI), Akka, Microsoft Service Fabric actors, and many others. This book introduces our contribution, the Distributed Application Runtime (Dapr), which has been well received by the community so far. Dapr is a new distributed runtime that is under active development. The best way to get up-to-date information is to visit Dapr’s official website. Instead of focusing on API details, this book aims to provide background information on how Dapr is designed and how we see it evolving in the future. We hope the book can help you understand the architecture and design philosophy of Dapr so that you can better apply Dapr in your own applications and make great contributions to the Dapr community.
Table of Contents
Chapter 1. Services
Chapter 2. State
Chapter 3. Messaging
Chapter 4. Security
Chapter 5. Actors
Chapter 6. Application Patterns
Chapter 7. Dapr's Future
What Is Dapr?
Dapr is a an event-driven, portable runtime for building microservices for the cloud and the edge. It uses a companion container or process to deliver the building blocks needed by distributed applications, including state management, service discovery, reliable messaging, observability, and more, which will be discussed in detail later. Dapr companion processes, or sidecars, expose a standard API surface through HTTP/gRPC protocols. This allows Dapr to support any programming language that supports HTTP or gRPC without requiring any SDKs for libraries to be included in application code. Dapr sidecars are interconnected to form an isolated, distributed runtime for a distributed application.
When we presented the sidecar architecture to some prospective customers, the idea immediately clicked with several of them. Although our gut feeling told us we were on to something, we spent a fair amount of time discussing why Dapr was necessary, and how Dapr would change the cloud native programming model. The central question was this: Why do we need yet another programming model for distributed applications? Or in other words, what makes Dapr unique and useful? Let’s take a look at what it offers.
Haishi Bai, works at Microsoft Azure’s CTO office and leads various cloud innovation projects. He is an experienced developer and architect with more than 30 years of programming experience. He’s also a passionate educator who has published eight cloud computing books. He also volunteers at high schools teaching programming languages.
Yaron Schneider is a principal software engineer on Microsoft's Azure CTO team.









