Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Save more on your purchases! discount-offer-chevron-icon
Savings automatically calculated. No voucher code required.
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletter Hub
Free Learning
Arrow right icon
timer SALE ENDS IN
0 Days
:
00 Hours
:
00 Minutes
:
00 Seconds
Event-Driven Architecture in Golang
Event-Driven Architecture in Golang

Event-Driven Architecture in Golang: Building complex systems with asynchronicity and eventual consistency

eBook
R$80 R$222.99
Paperback
R$278.99
Subscription
Free Trial
Renews at R$50p/m

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
Product feature icon AI Assistant (beta) to help accelerate your learning
OR
Modal Close icon
Payment Processing...
tick Completed

Billing Address

Table of content icon View table of contents Preview book icon Preview Book

Event-Driven Architecture in Golang

Introduction to Event-Driven Architectures

Event-driven architecture (EDA) is the foundational design of an application’s communication of state changes around an asynchronous exchange of messages called events. The architecture allows applications to be developed as a highly distributed and loosely coupled organization of components. Probably predominantly, the most well-known arrangement of components today is the microservices architecture for applications.

Our world is made up of events—they’re happening everywhere around us. A simple act of waking up in the morning becomes an event the instant it occurs. The same goes for the act of purchasing a book. Whether or not it was recorded that way in some database, somewhere, it was considered an event. Since it has occurred, several other operations might have sprung from it.

Just as companies looked at microservices a decade ago to address issues such as web-scale, EDA is gaining in interest and proponents of continuing that journey to help with global-scale.

It is my goal in this chapter to introduce you to the concepts and components of EDA and its applications that we will be using to demonstrate what EDA has to offer. We’ll also be taking a grounded look at the benefits and reasons to use EDA and the challenges you’re likely to encounter when starting a new greenfield project or adding select concepts and components to an existing project.

Whether you’re looking to start a new project with an event-driven approach or looking to break up a monolithic application into modules or further into microservices, this book will give you the information and patterns necessary to implement EDA where you need it.

In this chapter, we’re going to cover the following main topics:

  • An exchange of facts
  • The MallBots application
  • Benefits of EDA
  • Challenges of EDA

Technical requirements

We will be developing using Go and using Docker to run our application within containers. Visit the following to locate installers for your operating system:

Go 1.17 or higher is required to run the code from this book.

Left arrow icon Right arrow icon
Download code icon Download Code

Key benefits

  • Explore the benefits and tradeoffs of event-driven architectures with practical examples and use cases
  • Understand synergy with event sourcing, CQRS, and domain-driven development in software architecture
  • Build an end-to-end robust application architecture by the end of the book

Description

Event-driven architecture in Golang is an approach used to develop applications that shares state changes asynchronously, internally, and externally using messages. EDA applications are better suited at handling situations that need to scale up quickly and the chances of individual component failures are less likely to bring your system crashing down. This is why EDA is a great thing to learn and this book is designed to get you started with the help of step-by-step explanations of essential concepts, practical examples, and more. You’ll begin building event-driven microservices, including patterns to handle data consistency and resiliency. Not only will you learn the patterns behind event-driven microservices but also how to communicate using asynchronous messaging with event streams. You’ll then build an application made of several microservices that communicates using both choreographed and orchestrated messaging. By the end of this book, you’ll be able to build and deploy your own event-driven microservices using asynchronous communication.

Who is this book for?

This hands-on book is for intermediate-level software architects, or senior software engineers working with Golang and interested in building asynchronous microservices using event sourcing, CQRS, and DDD. Intermediate-level knowledge of the Go syntax and concurrency features is necessary.

What you will learn

  • Understand different event-driven patterns and best practices
  • Plan and design your software architecture with ease
  • Track changes and updates effectively using event sourcing
  • Test and deploy your sample software application with ease
  • Monitor and improve the performance of your software architecture

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Publication date : Nov 25, 2022
Length: 384 pages
Edition : 1st
Language : English
ISBN-13 : 9781803232188
Category :

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
Product feature icon AI Assistant (beta) to help accelerate your learning
OR
Modal Close icon
Payment Processing...
tick Completed

Billing Address

Product Details

Publication date : Nov 25, 2022
Length: 384 pages
Edition : 1st
Language : English
ISBN-13 : 9781803232188
Category :

Packt Subscriptions

See our plans and pricing
Modal Close icon
R$50 billed monthly
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Simple pricing, no contract
R$500 billed annually
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just R$25 each
Feature tick icon Exclusive print discounts
R$800 billed in 18 months
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just R$25 each
Feature tick icon Exclusive print discounts

Frequently bought together


Stars icon
Total R$ 763.97
Event-Driven Architecture in Golang
R$278.99
Microservices with Go
R$233.99
Domain-Driven Design with Golang
R$250.99
Total R$ 763.97 Stars icon

Table of Contents

17 Chapters
Part 1: Event-Driven Fundamentals Chevron down icon Chevron up icon
Chapter 1: Introduction to Event-Driven Architectures Chevron down icon Chevron up icon
Chapter 2: Supporting Patterns in Brief Chevron down icon Chevron up icon
Chapter 3: Design and Planning Chevron down icon Chevron up icon
Part 2: Components of Event-Driven Architecture Chevron down icon Chevron up icon
Chapter 4: Event Foundations Chevron down icon Chevron up icon
Chapter 5: Tracking Changes with Event Sourcing Chevron down icon Chevron up icon
Chapter 6: Asynchronous Connections Chevron down icon Chevron up icon
Chapter 7: Event-Carried State Transfer Chevron down icon Chevron up icon
Chapter 8: Message Workflows Chevron down icon Chevron up icon
Chapter 9: Transactional Messaging Chevron down icon Chevron up icon
Part 3: Production Ready Chevron down icon Chevron up icon
Chapter 10: Testing Chevron down icon Chevron up icon
Chapter 11: Deploying Applications to the Cloud Chevron down icon Chevron up icon
Chapter 12: Monitoring and Observability Chevron down icon Chevron up icon
Index Chevron down icon Chevron up icon
Other Books You May Enjoy Chevron down icon Chevron up icon

Customer reviews

Top Reviews
Rating distribution
Full star icon Full star icon Full star icon Full star icon Half star icon 4.9
(11 Ratings)
5 star 90.9%
4 star 9.1%
3 star 0%
2 star 0%
1 star 0%
Filter icon Filter
Top Reviews

Filter reviews by




Hana Mohan Dec 01, 2023
Full star icon Full star icon Full star icon Full star icon Full star icon 5
One of the more impactful books I've read since I started writing code in Go a year ago. I've written code for about two decades, progressively trying to get better at "engineering" reliable and performant systems. This book stands out for the quality of material, but even more so for the quality of the code available as a companion on GitHub. We ended up bringing some of it into our production application - it's that good!
Feefo Verified review Feefo
Sai teja mesala Mar 23, 2023
Full star icon Full star icon Full star icon Full star icon Full star icon 5
This book offers a comprehensive exploration of a variety of EDA topics, including architecture, design, patterns, testing, and planning. The author provides detailed information and presents the pros and cons of each concept, facilitating informed decision-making when designing a system. The level of detail and thorough explanations make this book an excellent resource for Go developers seeking to expand their knowledge and skill set. Overall, it is a valuable read for those interested in delving into high-quality EDA practices.
Amazon Verified review Amazon
Tiny Mar 17, 2023
Full star icon Full star icon Full star icon Full star icon Full star icon 5
Event-driven Architecture creates the basis for effective microservices and containerization. Michael Stack, with “Event-Driven Architecture in Golang) (2022) delivers an exceptional and unapologetic look through Golang to build a tool, establish events, and run the process through dev, test, and prod for the user. The book introduces a generic app, Mallbots, which manages stores, ordering, delivery and associated functions to create events. Using a common framework provides a stable training base for the reader to examine their own techniques and explore other options. The book divides into three sections, an introduction to events, the components of event-driven architecture, and production ready. Recommend this book for any developing with microservices in general or Golang in particular. The first three chapters introduce various elements of event-driven architecture, the Mallbots app that will be built, and an event-storming option. One exceptional item that occurs throughout this text is the use of Unified Modeling Language (UML) images and clear diagrams showing exactly how events relate to each other in different applications. This use of constructs, and the coding examples, make it easy to follow along through every step. The last chapter here discusses a process called event-storming. It is a process building tool to evaluate functional needs with later elements that may be introduced in code. The second section builds through the tools to build the MallBots app. As an interesting approach, the tool starts from a monolithic approach with synchronous communication, introduces modules, then builds to create the asynchronous linkages with a conversion to microservices and containers. One common theme references choreography versus orchestration of events where in choreography, each piece knows what comes next while orchestration has each piece knowing only what they do, and where it must be delivered centrally. The section builds through developing sagas to explicitly detail how events are expected to occur and use dependency injection to find the flaws. The last element takes the developed Mallbots app into production. Stack includes how to test the software through a variety of different tools with a preference for using mocks in the event-driven scenarios. Once the software is tested, the book covers how to deploy to the cloud effectively and then adds in types for monitoring success. The use of OpenTelemetry to start is always a good approach and then options are offered to use Jaeger, Prometheus, and Grafana to build those items into usable metrics. The book does acknowledge a shortcoming in that only logs and metrics are used initially but this last section fixes that by adding detailed traces to the overall picture. There was very little in this approach that was not done extremely well. If I had to pick a shortcoming, a chapter covering some of the differences between Golang and other event-driven architectures could have added to the generic readers knowledge. I enjoyed that the writer was unapologetic about the use of Golang throughout, and I think it made the read much better overall but I still do enjoy comparisons. Overall, “Event-Driven Architecture with GoLang” was exactly as promised. The book details an end to end learning approach to building MallBots, transitioning from a monolithic approach to an event-driven solution, and delivering that model into production. The generic MallBots tool can be easily switched to a personal application to improve, and the UML diagrams provide solutions to modify to whatever one might be building. This makes an excellent reference, and I recommend including it on your shelf if you work in either micro-services or Golang.
Amazon Verified review Amazon
Krishnan Raghavan Aug 31, 2023
Full star icon Full star icon Full star icon Full star icon Full star icon 5
Go is a multi-paradigm programming language. i.e. for a user to solve a problem using go, both object-oriented and functional paradigms can be used. While there are many books that help a reader understand the object-oriented paradigm of solving a problem, this book helps the reader understand the application of functional programming techniques in Go. The book starts with introducing the reader to the concept of Functional Programming. The second chapter helps the reader understand why the functions are powerful. Chapter 3 introduces the concept of Higher-Order functions. This chapter also introduces the reader to a variety of new concepts. Chapter 4 will help the reader understand how to write testable code with functions. Chapter 5 teaches the user about Immutability and how Go language helps in maintaining immutability in struct level. This chapter also explains the implications of Garbage Collection, Unit Testing, and pure Functional Programming.Chapter 6 to 8 is about using Functional programming Techniques. Chapter 6 talks about some practical implementations of Functions that leverage functional programming concepts. Chapter 7 helps the reader understand Recursion as in Functional Languages recursion takes center stage. Chapter 8 is about different methods of chaining functions in functional programming.Chapters 9 to 11 talk about Design Patterns and Functional Programming Libraries. While Chapter 9 talks about the Functional Desing Patterns, Chapter 10 teaches the reader about concurrency and how functional programming and how the same can be implemented using Go. Chapter 11 explains to the reader the different functional programming libraries that will help the reader build programs in a functional paradigm.This book expects the reader to have a basic understanding of Go and Generics in Go to understand all the topics better. Anybody who wants to understand about how to use functional programming in Go can get up and running quickly with this book. Kudos to the author Dylan Meeus for writing such a wonderful book.
Amazon Verified review Amazon
Bryan Finster Dec 17, 2022
Full star icon Full star icon Full star icon Full star icon Full star icon 5
This book does an excellent job of laying out the foundational information that so many people miss when designing distributed systems. You do not need to be a Golang expert or even a beginner to get value from this book. While walking readers through the process of converting an existing system to an event-driven architecture, it covers everything from strategic Domain Driven Design to effective testing patterns. It also does a great job of explaining the pros and cons of different architectures relative to the application context. I was given the opportunity to read a pre-release copy of this book to provide feedback and found it valuable enough that I purchased it as soon as it was available. I cannot recommend it enough.
Amazon Verified review Amazon
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

How do I buy and download an eBook? Chevron down icon Chevron up icon

Where there is an eBook version of a title available, you can buy it from the book details for that title. Add either the standalone eBook or the eBook and print book bundle to your shopping cart. Your eBook will show in your cart as a product on its own. After completing checkout and payment in the normal way, you will receive your receipt on the screen containing a link to a personalised PDF download file. This link will remain active for 30 days. You can download backup copies of the file by logging in to your account at any time.

If you already have Adobe reader installed, then clicking on the link will download and open the PDF file directly. If you don't, then save the PDF file on your machine and download the Reader to view it.

Please Note: Packt eBooks are non-returnable and non-refundable.

Packt eBook and Licensing When you buy an eBook from Packt Publishing, completing your purchase means you accept the terms of our licence agreement. Please read the full text of the agreement. In it we have tried to balance the need for the ebook to be usable for you the reader with our needs to protect the rights of us as Publishers and of our authors. In summary, the agreement says:

  • You may make copies of your eBook for your own use onto any machine
  • You may not pass copies of the eBook on to anyone else
How can I make a purchase on your website? Chevron down icon Chevron up icon

If you want to purchase a video course, eBook or Bundle (Print+eBook) please follow below steps:

  1. Register on our website using your email address and the password.
  2. Search for the title by name or ISBN using the search option.
  3. Select the title you want to purchase.
  4. Choose the format you wish to purchase the title in; if you order the Print Book, you get a free eBook copy of the same title. 
  5. Proceed with the checkout process (payment to be made using Credit Card, Debit Cart, or PayPal)
Where can I access support around an eBook? Chevron down icon Chevron up icon
  • If you experience a problem with using or installing Adobe Reader, the contact Adobe directly.
  • To view the errata for the book, see www.packtpub.com/support and view the pages for the title you have.
  • To view your account details or to download a new copy of the book go to www.packtpub.com/account
  • To contact us directly if a problem is not resolved, use www.packtpub.com/contact-us
What eBook formats do Packt support? Chevron down icon Chevron up icon

Our eBooks are currently available in a variety of formats such as PDF and ePubs. In the future, this may well change with trends and development in technology, but please note that our PDFs are not Adobe eBook Reader format, which has greater restrictions on security.

You will need to use Adobe Reader v9 or later in order to read Packt's PDF eBooks.

What are the benefits of eBooks? Chevron down icon Chevron up icon
  • You can get the information you need immediately
  • You can easily take them with you on a laptop
  • You can download them an unlimited number of times
  • You can print them out
  • They are copy-paste enabled
  • They are searchable
  • There is no password protection
  • They are lower price than print
  • They save resources and space
What is an eBook? Chevron down icon Chevron up icon

Packt eBooks are a complete electronic version of the print edition, available in PDF and ePub formats. Every piece of content down to the page numbering is the same. Because we save the costs of printing and shipping the book to you, we are able to offer eBooks at a lower cost than print editions.

When you have purchased an eBook, simply login to your account and click on the link in Your Download Area. We recommend you saving the file to your hard drive before opening it.

For optimal viewing of our eBooks, we recommend you download and install the free Adobe Reader version 9.