Get in Touch
 Duration 28 hours

Course Outline

Day 1: Core Principles of Event-Driven Architecture in Go

  • EDA Fundamentals
    • Defining Event-Driven Architecture.
    • Contrasting Monolithic, Microservices, and Event-Driven paradigms.
    • Leveraging Go’s concurrency model and lightweight goroutines for optimal EDA performance.
  • Key Concepts and Advantages
    • Achieving decoupling, scalability, and resilience in enterprise environments.
    • Clarifying the roles of Events, Producers, Consumers, and Event Brokers.
    • Case studies and real-world instances of Go powering high-performance event systems.
  • CAP Theorem and EDA Trade-offs
    • Reviewing Consistency, Availability, and Partition Tolerance.
    • Analyzing the effect of EDA on these system properties.
    • Techniques for balancing consistency and availability in Go-centric systems.

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

  • Classifying Event Types
    • Distinguishing between Domain Events and Integration Events.
    • Managing Synchronous versus Asynchronous events within Go applications.
  • Applying Messaging Patterns
    • Implementing Publish-Subscribe (Pub/Sub) mechanisms in Go.
    • Structuring and designing event payloads using JSON, Protocol Buffers, or Avro within Go.
  • Executing Event Handling in Go
    • Surveying widely used Go libraries and frameworks for messaging.
    • Code demonstrations: dispatching and processing events through idiomatic Go patterns.
    • Practical session: Constructing a basic event-driven service using Go.

Day 3: Messaging Systems and Event Brokers with Go

  • Choosing and Connecting Event Brokers
    • Reviewing leading brokers: Apache Kafka, RabbitMQ, and NATS.
    • Evaluating use cases and best practices for Go-based implementations.
  • Establishing Messaging Infrastructure
    • Configuring Docker Compose for Kafka, RabbitMQ, or NATS.
    • Setting up topics, exchanges, queues, and channels.
    • Overview of available Go client libraries.
  • Practical Workshop
    • Developing a sample Go microservice that both emits and processes events.
    • Connecting the service to the selected event broker.
    • Debugging and verifying event flows.

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

  • Releasing Go Event-Driven Apps on Kubernetes
    • Preparing Go applications for production via containerization.
    • Deploying Kafka (or alternative brokers) within Kubernetes clusters.
    • Introduction to KEDA (Kubernetes Event-Driven Autoscaling) for scaling event consumers.
  • Error Management and Monitoring
    • Addressing event failures using defined strategies.
    • Integrating observability features into Go services.
  • Advanced Insights and Q&A
    • Investigating Serverless Event-Driven Architectures with Go.
    • Comparing Event Choreography and Orchestration: Use cases and design implications.
    • Common pitfalls, experiential lessons, and industry best practices.
    • Open Q&A session and collaborative troubleshooting.

Requirements

  • Strong proficiency in Go (Golang), with specific experience in utilizing goroutines and channels.
  • Foundational understanding of software architecture patterns, including monolithic and microservice structures.
  • Working knowledge of Docker and Docker Compose.
  • Basic comprehension of REST APIs and core networking principles.
  • Practical experience with command-line interfaces and Git version control.
  • Beneficial but not mandatory: prior interaction with Kubernetes and messaging systems such as Kafka, RabbitMQ, or NATS.

Intended Audience

  • Go developers seeking to create scalable, event-centric applications.
  • Software engineers shifting from synchronous monolithic or REST-based designs to asynchronous architectures.
  • DevOps and cloud professionals managing containerized or distributed microservices.
  • Technical architects and system designers investigating EDA patterns implemented in Go.

Number of participants


Price per participant

Testimonials (7)

Upcoming Courses

Related Categories