Get in Touch

Course Outline

Day 1: Event-Driven Architecture Fundamentals in Go

  • Introduction to EDA
    • Defining Event-Driven Architecture
    • Contrasting Monolithic, Microservices, and Event-Driven Systems
    • Why Go’s concurrency model and lightweight goroutines are well-suited for EDA
  • Core Concepts and Advantages
    • Achieving decoupling, scalability, and resilience in enterprise systems
    • Defining Events, Producers, Consumers, and Event Brokers
    • Case studies and real-world examples of Go powering high-performance event systems
  • CAP Theorem and EDA Trade-offs
    • Overview of Consistency, Availability, and Partition Tolerance
    • The impact of EDA on these architectural properties
    • Strategies for balancing consistency and availability in Go-based systems

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

  • Types of Events
    • Distinguishing between Domain Events and Integration Events
    • Synchronous versus Asynchronous events in Go applications
  • Messaging Patterns in Practice
    • Implementing Publish-Subscribe (Pub/Sub) in Go
    • Designing and structuring event payloads using JSON, Protocol Buffers, or Avro in Go
  • Event Handling Implementation in Go
    • Overview of popular Go libraries and frameworks for messaging
    • Code demonstrations: dispatching and processing events using idiomatic Go patterns
    • Practical session: Creating a basic event-driven service in Go

Day 3: Messaging Systems and Event Brokers with Go

  • Choosing and Integrating Event Brokers
    • Overview of leading brokers: Apache Kafka, RabbitMQ, and NATS
    • Comparing use cases and best practices for Go-based systems
  • Setting Up Messaging Infrastructure
    • Configuring Docker Compose for Kafka, RabbitMQ, or NATS
    • Setting up topics, exchanges, queues, and channels
    • Review of Go client libraries
  • Practical Workshop
    • Developing a sample Go microservice that generates and processes events
    • Integrating the service with the selected event broker
    • Debugging and testing event workflows

Day 4: Deployment, Monitoring, and Advanced Go EDA Topics

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

Requirements

  • Strong proficiency in Go (Golang), specifically regarding the use of goroutines and channels
  • A foundational understanding of software architecture models, including monoliths and microservices
  • Familiarity with Docker and Docker Compose
  • Basic knowledge of REST APIs and networking principles
  • Experience working with command-line tools and Git
  • While optional, prior experience with Kubernetes and messaging systems like Kafka, RabbitMQ, or NATS is advantageous

Target Audience

  • Go developers focused on building scalable, event-driven applications
  • Software engineers shifting from monolithic or REST-based architectures to asynchronous systems
  • DevOps and cloud engineers managing containerized or distributed microservices
  • Technical architects and system designers exploring EDA patterns through Go
 28 Hours

Number of participants


Price per participant

Testimonials (7)

Upcoming Courses

Related Categories