Get in Touch

Course Outline

Day 1: Establishing Foundations of Event-Driven Architecture in Go

  • Introduction to EDA
    • The definition and scope of Event-Driven Architecture
    • Contrasting Monolithic, Microservices, and Event-Driven System models
    • Leveraging Go’s concurrency model and lightweight goroutines for optimal EDA performance
  • Core Concepts & Advantages
    • Achieving decoupling, scalability, and resilience in enterprise-grade systems
    • Defining key roles: Events, Producers, Consumers, and Event Brokers
    • Examining real-world case studies where Go drives high-performance event systems
  • CAP Theorem & EDA Trade-offs
    • An overview of Consistency, Availability, and Partition Tolerance
    • Assessing the impact of EDA on these fundamental properties
    • Developing strategies to balance consistency and availability in Go-based solutions

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

  • Classification of Event Types
    • Distinguishing between Domain Events and Integration Events
    • Navigating Synchronous vs. Asynchronous events within Go applications
  • Practical Messaging Patterns
    • Implementing Publish-Subscribe (Pub/Sub) mechanisms in Go
    • Designing and structuring event payloads using JSON, Protocol Buffers, or Avro within Go
  • Executing Event Handling in Go
    • Surveying leading Go libraries and frameworks for messaging
    • Code demonstrations: dispatching and processing events using idiomatic Go patterns
    • Practical session: Constructing a basic event-driven service in Go

Day 3: Integrating Messaging Systems & Event Brokers with Go

  • Choosing and Integrating Event Brokers
    • Overview of leading brokers: Apache Kafka, RabbitMQ, and NATS
    • Comparing use cases and optimal practices for Go-based implementations
  • Configuring Messaging Infrastructure
    • Establishing Docker Compose setups for Kafka, RabbitMQ, or NATS
    • Configuring essential components: topics, exchanges, queues, and channels
    • Reviewing Go client library options
  • Practical Workshop
    • Developing a sample Go microservice capable of producing and consuming events
    • Connecting the service with the selected event broker
    • Debugging and validating event flow pathways

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

  • Deploying Go Event-Driven Applications on Kubernetes
    • Containerizing Go applications for production-ready environments
    • Deploying Kafka (or alternative brokers) on Kubernetes clusters
    • Introduction to KEDA (Kubernetes Event-Driven Autoscaling) for optimizing event consumer scaling
  • Error Handling and System Monitoring
    • Addressing event failures through robust strategy implementation
    • Integrating observability features into Go services
  • Advanced Concepts & Q&A
    • Investigating Serverless Event-Driven Architectures using Go
    • Comparing Event Choreography vs. Orchestration: Use cases and design implications
    • Discussing common pitfalls, key takeaways, and industry best practices
    • Open Q&A session and interactive troubleshooting exercises

Requirements

  • Strong proficiency in Go (Golang), with particular focus on utilizing goroutines and channels
  • Foundational understanding of software architecture models, including monolithic and microservice structures
  • Competence in using Docker and Docker Compose
  • Basic familiarity with REST APIs and core networking principles
  • Practical experience with command-line interfaces and Git version control
  • Recommended prior exposure to Kubernetes and messaging systems such as Kafka, RabbitMQ, or NATS

Target Audience

  • Go developers focused on creating scalable, event-driven applications
  • Software engineers shifting from monolithic or REST-centric architectures toward asynchronous system designs
  • DevOps and cloud engineers working with containerized or distributed microservices
  • Technical architects and system designers investigating EDA patterns within the Go ecosystem
 28 Hours

Testimonials (7)

Related Categories