Course Outline

Day 1: Foundations of Event-Driven Architecture in Go

  • Introduction to EDA
    • What is Event-Driven Architecture?
    • Comparing Monolithic, Microservices, and Event-Driven Systems
    • How Go’s concurrency model and lightweight goroutines make it ideal for EDA
  • Core Concepts & Benefits
    • Decoupling, scalability, and resilience in enterprise systems
    • Defining Events, Producers, Consumers, and Event Brokers
    • Real-world examples and case studies where Go powers high-performance event systems
  • CAP Theorem & Trade-offs in EDA
    • Overview of Consistency, Availability, and Partition Tolerance
    • Impact of EDA on these properties
    • Strategies for balancing consistency and availability in Go-based systems

Day 2: Events, Messages, and Communication Patterns in Go

  • Understanding Event Types
    • Domain Events vs. Integration Events
    • Synchronous vs. Asynchronous events in Go applications
  • Messaging Patterns in Practice
    • Publish-Subscribe (Pub/Sub) in Go 
    • How to design and structure event payloads using JSON, Protocol Buffers, or Avro in Go
  • Implementing Event Handling in Go
    • Overview of popular Go libraries and frameworks for messaging 
    • Code examples: dispatching and processing events using idiomatic Go patterns
    • Hands-on session: Building a simple event-driven service in Go

Day 3: Messaging Systems & Event Brokers with Go

  • Selecting and Integrating Event Brokers
    • Overview of popular brokers: Apache Kafka, RabbitMQ, and NATS
    • Comparison of use cases and best practices for Go-based systems
  • Setting Up Messaging Infrastructure
    • Docker Compose setup for Kafka, RabbitMQ, or NATS
    • Configuring topics, exchanges, queues, and channels
    • Go client libraries overview
  • Hands-On Workshop
    • Building a sample Go microservice that produces and consumes events
    • Integrating the service with the chosen event broker
    • Debugging and testing event flows

Day 4: Deploying, Monitoring, and Advanced Topics in Go EDA

  • Deploying Go Event-Driven Applications on Kubernetes
    • Containerizing Go applications for production
    • Deploying Kafka (or other brokers) on Kubernetes clusters
    • Introduction to KEDA (Kubernetes Event-Driven Autoscaling) for scaling event consumers
  • Error Handling and Monitoring
    • Handling event failures with strategies 
    • Implementing observability in Go services
  • Advanced Topics & Q&A
    • Exploring Serverless Event-Driven Architectures with Go
    • Event Choreography vs. Orchestration: Use cases and design considerations
    • Common pitfalls, lessons learned, and best practices
    • Open Q&A session and interactive troubleshooting

 


Requirements

Go (Golang) programming skills, including concurrency (goroutines, channels)
Basic understanding of software architecture (monoliths, microservices)
Familiarity with Docker and Docker Compose
Basic knowledge of REST APIs and networking
Experience using CLI tools and Git
Optional: Exposure to Kubernetes and messaging systems (Kafka, RabbitMQ, NATS)
 
 28 Hours

Number of participants


Price per participant

Testimonials (7)

Upcoming Courses

Related Categories