Learning Dapr: Building Distributed Cloud Native Applications
Building Distributed Cloud Native Applications
Haishi Bai and Yaron Schneider
An 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.
Over the past few months, I have been diving a lot deeper into Microservices and especially the Event-Driven paradigms, which I have also recently reviewed Building Microservices: Designing Fine-Grained Systems and Building Event-Driven Microservices: Leveraging Organizational Data at Scale. To coincide with this the team and I, at threenine, have just taking on a new project for a global client, which involves integrating our Denizon product suite of Energy Monitoring and Management and Workforce Management system into their existing application stack.
In order to integrate with their existing stack, we will be required to develop a number of Event-Driven microservices to ingest, process and transform vast amounts of data and in these situations conventional systems are just not up to the task. Fortunately we do have a lot of previous experience in developing Microservices and our application stack has been developed, what I would like to call a bespoke framework but in reality is rather an evolution of experiments and the result of almost 7 years of learning, tinkering and finding out what works for us in our product. We are happy with the result, but equally we wouldn't want to roll this out and expect other development teams to work with it. It would also mean our team, need to provide third party support and in a way could constrain us from making future enhancements, changes, modifications and re-implementations because we would have to supply additional backward comptability.
Developing re-usable software frameworks, is a lot harder work than most organisations and developers initially anticipate. They can also be the root cause of failure for many software development teams and companies.
It was with this in mind, that I went in search for a reusable software framework for cloud-native event-driven microservices and when I stumbled across Dapr - Distributed Application Runtime .
Dapr helps developers build event-driven, resilient distributed applications. Whether on-premises, in the cloud, or on an edge device, Dapr helps you tackle the challenges that come with building microservices and keeps your code platform agnostic.dapr.io
What I read this book
The documentation available on the Dapr.io, is actually really good and for the most part, my team and I had no issues getting up to speed using documenation. However, I always prefer have a book I can flick through, read while crashing out on the sofa or even just laying out in the garden in the sun. Reading a book away from the computer, often helps to provide focus for me.
I often find that reading books on technical subjects, quite often reveal a number of hidden gems of information, you don't always get when reading documentation online. In this case, I found this book to be one of those cases!
What I like about this book
This book is more than just a rehash of the documentation available online, primarily because it provides additional insights and reasoning behind some of the concepts implemented in framework, by the guys behind developing and maintaining it!
Secondly, I really appreciate that code samples in this book are in Multiple programming languages because it drives home that Dapr is truly designed to be used by a number of programming languages, so there is no restriction on who can and can't use it. I have found throughout my career that having a viewpoint of how developers in other languages implement solutions enables deeper understanding and appreciation of solutions.
I also appreciate the insights provided by the Authors on their experience of developing Cloud-Native applications and how their experience has evolved. It often helps to have some perspective on history and evolution to understand why things are done the way they are today.
Why I recommend this book
I personally found this book, extremely insightful and useful in helping me to gain a deeper understanding and appreciation of Dapr. The fact, that code samples in book are provided in in multiple programming languages made me appreciate just how extensible the framework really is, which actually opens up a whole new world in Microservice development and integration.
I feel this book, is a great companion to the online documentation, and it way provides the illusion that core developers and maintainers of the product are in the room with you as you work your way through the framework.