/Micheal-Stack-Book

Event Driven Architecture in Go, Building complex system with asynchronicity and eventual consistency

Primary LanguageGo

What is this repoooo?

  • This repo is me writing my notes from reading this book by Micheal Stack
  • This repo will also contains the code from my reading and learnings.

What I picked up

  • Event storming (Need one more read)
  • Capturing domain events in our modules
  • Structuring a modular monolith in Go
  • Using gRPC and gRPC Gateway for gRPC API and REST API
  • Understanding types of events
  • Event sourcing to track changes
  • Event sourcing vs event streaming
  • Consistency in event sourcing database
  • Async communciation 101
  • Notification callbacks
  • Using NATS for message broker
  • Idempotency in message brokers
  • Message deduplication
  • Using database transaction for message deduplication
  • Message delivery guarantee
  • Orderded message guarantee
  • Potential problem being competing consumers
  • Event carried state transfer

TODO

  • Implement pub-sub internal library -> Later change to Watermill
  • Implement event sourcing internal libary
  • Implement serializer and deserializer internal library
  • Implement the modular monolith version

NOTE: Will upload my personal notes once I'm done with the book