Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/igor-baiborodine/event-driven-architecture-in-golang-workshop
This workshop covers material from the "Event-Driven Architecture in Golang" book.
https://github.com/igor-baiborodine/event-driven-architecture-in-golang-workshop
Last synced: 26 days ago
JSON representation
This workshop covers material from the "Event-Driven Architecture in Golang" book.
- Host: GitHub
- URL: https://github.com/igor-baiborodine/event-driven-architecture-in-golang-workshop
- Owner: igor-baiborodine
- License: mit
- Created: 2023-11-29T14:22:15.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2024-01-23T22:10:06.000Z (10 months ago)
- Last Synced: 2024-04-16T19:08:35.945Z (7 months ago)
- Language: Go
- Homepage:
- Size: 3.22 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Event-Driven Architecture in Golang
>
> 🔥 Campgrounds API is another example application, or a gRPC microservice, to be more precise, whose implementation is heavily inspired by the Mallbots example application from Michael Stack's book "Event-Driven Architecture in Golang." For more details, please see the [campsite-booking-go](https://github.com/igor-baiborodine/campsite-booking-go) GitHub repository.
>This workshop covers material from
the ["Event-Driven Architecture in Golang: Building complex systems with asynchronicity and eventual consistency"](https://www.amazon.ca/dp/1803238011/)
book. It contains the same source code as in the original [repository](https://github.com/PacktPublishing/Event-Driven-Architecture-in-Golang)
but is updated and executed against the latest versions of dependent Go packages.**Table of Contents**
- [X] 1.Introduction to Event-driven Architectures
- [X] 2.[Supporting Patterns in Brief](/Chapter02)
- [X] 3.[Design and Planning](/Chapter03) ([`65ef92b`](https://github.com/igor-baiborodine/event-driven-architecture-in-golang-workshop/commit/65ef92b7b499bea5b42768376b1b9dbddb890593))
- [X] 4.[Event Foundations](/Chapter04) ([`6a2d842`](https://github.com/igor-baiborodine/event-driven-architecture-in-golang-workshop/commit/6a2d84294cdb43c14252c4bef2035c5f85979196))
- [X] 5.[Tracking Changes with Event Sourcing](/Chapter05) ([`020069a`](https://github.com/igor-baiborodine/event-driven-architecture-in-golang-workshop/commit/020069ae1ab0472dd08d59747157ba8be935934a))
- [X] 6.[Asynchronous Connections](/Chapter06) ([`31cc914`](https://github.com/igor-baiborodine/event-driven-architecture-in-golang-workshop/commit/31cc91402392c3f193d980474bbd0bd4bbe1032d))
- [X] 7.[Event-Carried State Transfer](/Chapter07) ([`f4c47c1`](https://github.com/igor-baiborodine/event-driven-architecture-in-golang-workshop/commit/f4c47c10127080980c8de2839841ed149a263eb1))
- [X] 8.[Message Workflows](/Chapter08) ([`8edfc5b`](https://github.com/igor-baiborodine/event-driven-architecture-in-golang-workshop/commit/8edfc5bce342e4b854a171b520c34600a4749b3d))
- [X] 9.[Transactional Messaging](/Chapter09) ([`40e5d9f`](https://github.com/igor-baiborodine/event-driven-architecture-in-golang-workshop/commit/40e5d9ff754b486b642c2706d12db92c7e6ac261))
- [X] 10.[Testing](/Chapter10) ([`3973084`](https://github.com/igor-baiborodine/event-driven-architecture-in-golang-workshop/commit/3973084502de3f2e2c0817220b5ae33f985cd5aa))
- [X] 11.[Deploying Applications to the Cloud](/Chapter11) ([`c077496`](https://github.com/igor-baiborodine/event-driven-architecture-in-golang-workshop/commit/c07749682aebcaf52c39f6bb41fd62570d7bf900))
- [X] 12.[Monitoring and Observability](/Chapter12) ([`c791c1f`](https://github.com/igor-baiborodine/event-driven-architecture-in-golang-workshop/commit/c791c1f46ebf2b34033a577b468c91e46fa94bc2))This is the code repository for [Event-Driven Architecture in Golang](https://www.packtpub.com/product/event-driven-architecture-in-golang/9781803238012?utm_source=github&utm_medium=repository&utm_campaign=9781803238012), published by Packt.
**Building complex systems with asynchronicity and eventual consistency**
## What is this book about?
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 book covers the following exciting features:
* 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 architectureIf you feel this book is for you, get your [copy](https://www.amazon.com/dp/1803238011) today!
## Instructions and Navigations
All of the code is organized into folders. For example, Chapter02.The code will look like the following:
```
BEGIN;
-- execute queries, updates, inserts, deletes ...
PREPARE TRANSACTION 'bfa1c57a-d99d-4d74-87a9-3aaabcc754ee';
```**Following is what you need for this book:**
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.With the following software and hardware list you can run all code files present in the book (Chapter 1-12).
### Software and Hardware List
| Chapter | Software required | OS required |
| -------- | ------------------------------------ | ----------------------------------- |
| 1-12 | Go 1.18+ | Windows, Mac OS X, and Linux (Any) |
| 1-12 | Docker 20.10.x | Windows, Mac OS X, and Linux (Any) |
| 1-12 | NATS 2.4 | Windows, Mac OS X, and Linux (Any) |We also provide a PDF file that has color images of the screenshots/diagrams used in this book. [Click here to download it](https://packt.link/qgf1O).
### Related products
* Go for DevOps
[[Packt]](https://www.packtpub.com/product/go-for-devops/9781801818896?utm_source=github&utm_medium=repository&utm_campaign=9781801818896) [[Amazon]](https://www.amazon.com/dp/1801818894)* Mastering Go - Third Edition
[[Packt]](https://www.packtpub.com/product/mastering-go-third-edition/9781801079310?utm_source=github&utm_medium=repository&utm_campaign=9781801079310) [[Amazon]](https://www.amazon.com/dp/1801079315)## Get to Know the Author
**Michael Stack**
is a solutions architect with more than 20 years experience developing software. He has been working with Golang for over seven years. During his career he has developed numerous N-tier applications, and is focused on development involving microservices and other distributed applications running in the cloud.### Download a free PDF
If you have already purchased a print or Kindle version of this book, you can get a DRM-free PDF version at no cost.
Simply click on the link to claim your free PDF.