Introduction
Distributed Services with Go — by Travis Jeffery (3 / 84)
--
👈 Acknowledgments | TOC | Who This Book Is For 👉
Go has become the most popular language for building distributed services, as shown by projects like Docker, Etcd, Vault, CockroachDB, Prometheus, and Kubernetes. Despite the number of prominent projects such as these, however, there’s no resource that teaches you why or how you can extend these projects or build your own.
Where do you begin if you want to build a distributed service?
When I began learning how to build distributed services, I found the existing resources to be of two extremes:
- Concrete code — distributed services are large, complex projects, and the prominent ones have had teams working on them for years. The layout of these projects, their technical debt, and their spaghetti code bury the ideas you’re interested in, which means you have to dig them out. At best, learning from code is inefficient. Plus there’s the risk that you may uncover outdated and irrelevant techniques that you’re better off avoiding in your own projects.
- Abstract papers and books — papers and books like Designing Data-Intensive Applications by Martin Kleppmann[1] describe how the data structures and algorithms behind distributed services work but cover them as discrete ideas, which means you’re left on your own to connect them before you can apply them in a project.
These two extremes leave a chasm for you to cross. I wanted a resource that held my hand and taught me how to build a distributed service — a resource that explained the big ideas behind distributed services and then showed me how to make something of them.
I wrote this book to be that resource. Read this book, and you’ll be able to build your own distributed services and contribute to existing ones.
👈 Acknowledgments | TOC | Who This Book Is For 👉
Distributed Services with Go by Travis Jeffery can be purchased in other book formats directly from the Pragmatic Programmers. If you notice a code error or formatting mistake, please let us know here so that we can fix it.