Get in Touch
 Duration 28 hours

Course Outline

Day 1: Foundations of Event-Driven Architecture in Go

  • Introduction to EDA
    • Defining Event-Driven Architecture
    • Contrasting Monolithic, Microservices, and Event-Driven System Models
    • Why Go's concurrency model and lightweight goroutines are well-suited for EDA
  • Core Concepts & Advantages
    • Achieving decoupling, scalability, and resilience in enterprise environments
    • Defining key roles: Events, Producers, Consumers, and Event Brokers
    • Real-world case studies demonstrating Go's role in high-performance event systems
  • CAP Theorem & Trade-offs in EDA
    • Overview of Consistency, Availability, and Partition Tolerance
    • The impact of EDA on these distributed system properties
    • Strategies for balancing consistency and availability in Go-based architectures

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

  • Understanding Event Types
    • Distinguishing between Domain Events and Integration Events
    • Comparing Synchronous vs. Asynchronous events in Go applications
  • Messaging Patterns in Practice
    • Implementing Publish-Subscribe (Pub/Sub) models in Go
    • Designing and structuring event payloads using JSON, Protocol Buffers, or Avro in Go
  • Implementing Event Handling in Go
    • Survey of popular Go libraries and frameworks for messaging
    • Code demonstrations: Dispatching and processing events using idiomatic Go patterns
    • Practical session: Constructing a simple event-driven service in Go

Day 3: Messaging Systems & Event Brokers with Go

  • Selecting and Integrating Event Brokers
    • Overview of leading brokers: Apache Kafka, RabbitMQ, and NATS
    • Comparing use cases and best practices for Go-based implementations
  • Setting Up Messaging Infrastructure
    • Configuring Docker Compose for Kafka, RabbitMQ, or NATS
    • Managing topics, exchanges, queues, and channels
    • Overview of Go client libraries
  • Hands-On Workshop
    • Building a sample Go microservice capable of producing and consuming events
    • Integrating the service with the selected event broker
    • Debugging and validating event flows

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

  • Deploying Go Event-Driven Applications on Kubernetes
    • Containerizing Go applications for production readiness
    • Deploying Kafka (or alternative brokers) on Kubernetes clusters
    • Introducing KEDA (Kubernetes Event-Driven Autoscaling) for scaling event consumers
  • Error Handling and Monitoring
    • Addressing event failures using robust strategies
    • Implementing observability within Go services
  • Advanced Topics & Q&A
    • Exploring Serverless Event-Driven Architectures with Go
    • Event Choreography vs. Orchestration: Analyzing use cases and design considerations
    • Identifying common pitfalls, sharing lessons learned, and reviewing best practices
    • Open Q&A session and interactive troubleshooting exercises

Requirements

  • Solid proficiency in Go (Golang), with specific experience in utilizing goroutines and channels
  • Foundational knowledge of software architecture paradigms, including monoliths and microservices
  • Working familiarity with Docker and Docker Compose
  • Basic understanding of REST APIs and core networking principles
  • Practical experience with command-line utilities and Git version control
  • Beneficial but not mandatory: Prior exposure to Kubernetes and messaging technologies such as Kafka, RabbitMQ, or NATS

Target Audience

  • Go developers focused on creating scalable, event-driven applications
  • Software engineers transitioning from monolithic or REST-centric architectures to asynchronous systems
  • DevOps and cloud engineers managing containerized or distributed microservices
  • Technical architects and system designers exploring EDA patterns through the lens of Go

Number of participants


Price per participant

Testimonials (7)

Upcoming Courses

Related Categories