Event-Driven Architecture in Golang
Building complex systems with asynchronicity and eventual consistency
Michael Stack
BIRMINGHAMMUMBAI
Event-Driven Architecture in Golang
Copyright 2022 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing or its dealers and distributors, will be held liable for any damages caused or alleged to have been caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.
Group Product Manager: Gebin George
Publishing Product Manager: Gebin George
Senior Editor: Rounak Kulkarni
Technical Editor: Pradeep Sahu
Copy Editor: Safis Editing
Project Coordinator: Manisha Singh
Proofreader: Safis Editing
Indexer: Hemangini Bari
Production Designer: Prashant Ghare
Developer Relations Marketing Executive: Sonakshi Bubbar
Business Development Executive: Bhanu Rangani
First published: November 2022
Production reference: 1281022
Published by Packt Publishing Ltd.
Livery Place
35 Livery Street
Birmingham
B3 2PB, UK.
ISBN 978-1-80323-801-2
www.packt.com
To my father, William Stack, for introducing me to the world of computers and instilling in me a passion for technology. To my wife, Kate, for enduring my long hours and weekends locked away working on the book. To my son, Malcolm, most of all, since I doubt I could have finished without his unceasing support, drawings, messages, and words of encouragement.
Michael Stack
Contributors
About the author
Michael Stack is a solutions architect who has over 20 years of expertise in the software development industry. Throughout the course of his career, he has developed a variety of applications, including company blogs and intranets, festival ticketing systems, multiplayer games, and national park management software. Currently, his principal focus is on the development of microservices and other distributed applications. He is passionate about using Go and has been doing so for the better part of a decade for both personal and professional projects.
I would like to thank everyone who supported and encouraged me, especially my wife, Kate, my father, my son, and Packt.
About the reviewers
Dimas Yudha Prawira is a father, engineer, public speaker, tech community leader, and tech organizer. He has 18 years of experience with software engineering and has worked for various companies, including PT Telekomunikasi Indonesia (Telkom), Kudo x Grab, OVO, and RCTI+. He loves the Go programming language, Java, and talking about code. He is most interested in microservices, SOA, APIs, software architecture, embedded systems, and more.
When he is not working, he uses his time to read books, watch movies, or just play with his family.
Samantha Coyle is a Go backend engineer, speaker, and mentor with a love for all things Go and open source. She spends her days developing Go microservices, bringing in new features, observability, improved testing, and best practices. She is a software engineer for the Internet of Things (IoT) group at Intel, where she enables healthcare solutions using Go and Open Source technology at the edge and has worked on computer vision-based smart city solutions and industrial applications. Samantha explores thought leadership avenues, including reviewing Go textbooks, speaking at GopherCon, Grace Hopper Conference, and Open Source Summit in 2022, attaining her CKAD certification, and volunteering to mentor early career professionals to grow as Go engineers.