Get in Touch
 Duration 28 hours

Course Outline

Day 1: Foundations of Event-Driven Architecture in Go

  • Introduction to EDA
    • Defining the principles of Event-Driven Architecture
    • Contrasting Monolithic, Microservices, and Event-Driven Systems
    • Leveraging Go’s concurrency model and lightweight goroutines for effective EDA implementation
  • Core Concepts & Benefits
    • Achieving decoupling, scalability, and resilience in enterprise-grade systems
    • Identifying Events, Producers, Consumers, and Event Brokers
    • Examining real-world examples and case studies of high-performance event systems powered by Go
  • CAP Theorem & Trade-offs in EDA
    • Understanding the balance between Consistency, Availability, and Partition Tolerance
    • Analyzing the impact of EDA on these system properties
    • Developing strategies to balance 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
    • Managing synchronous versus asynchronous events in Go applications
  • Messaging Patterns in Practice
    • Implementing Publish-Subscribe (Pub/Sub) patterns in Go
    • Designing and structuring event payloads using JSON, Protocol Buffers, or Avro within Go projects
  • Implementing Event Handling in Go
    • Reviewing popular Go libraries and frameworks for messaging
    • Examining code examples: dispatching and processing events using idiomatic Go patterns
    • Practical session: Constructing a basic 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
    • Evaluating use cases and best practices for integrating these systems with Go
  • Setting Up Messaging Infrastructure
    • Configuring Docker Compose environments for Kafka, RabbitMQ, or NATS
    • Managing topics, exchanges, queues, and channels
    • Surveying available Go client libraries
  • Hands-On Workshop
    • Developing a sample Go microservice capable of producing and consuming events
    • Connecting the service to 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
    • Preparing Go applications for production via containerization
    • Deploying Kafka (or alternative brokers) on Kubernetes clusters
    • Utilizing KEDA (Kubernetes Event-Driven Autoscaling) to manage event consumer scaling
  • Error Handling and Monitoring
    • Applying strategies to handle event failures effectively
    • Establishing observability standards in Go services
  • Advanced Topics & Q&A
    • Investigating Serverless Event-Driven Architectures with Go
    • Comparing Event Choreography and Orchestration: use cases and design implications
    • Reviewing common pitfalls, key lessons, and industry best practices
    • Facilitating an open Q&A session and interactive troubleshooting discussion

Requirements

  • Strong proficiency in Go (Golang), with a solid understanding of goroutines and channels
  • Foundational knowledge of software architecture models, including monoliths and microservices
  • Familiarity with containerization tools, specifically Docker and Docker Compose
  • Basic comprehension of REST APIs and core networking concepts
  • Practical experience with command-line interfaces and Git version control
  • Beneficial prior exposure to Kubernetes and messaging systems such as Kafka, RabbitMQ, or NATS

Target Audience

  • Go developers focused on building scalable, event-driven applications
  • Software engineers aiming to transition from monolithic or synchronous REST-based architectures to asynchronous systems
  • DevOps and cloud engineers managing containerized or distributed microservices
  • Technical architects and system designers investigating EDA patterns implemented in Go

Testimonials (7)

Related Categories