Get in Touch
 Duration 28 hours

Course Outline

Day 1: Fundamentals of Event-Driven Architecture 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 & Advantages
    • Achieving decoupling, scalability, and resilience in enterprise contexts
    • Identifying Events, Producers, Consumers, and Event Brokers
    • Real-world case studies demonstrating Go in high-performance event systems
  • CAP Theorem & EDA Trade-offs
    • Explaining Consistency, Availability, and Partition Tolerance
    • Assessing the impact of EDA on these properties
    • Strategies for balancing consistency and availability in Go-based architectures

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

  • Exploring Event Types
    • Distinguishing between Domain Events and Integration Events
    • Managing synchronous versus asynchronous events in Go applications
  • Messaging Patterns in Action
    • 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
    • Reviewing popular Go libraries and frameworks for messaging
    • Code demonstrations: dispatching and processing events using idiomatic Go patterns
    • Practical session: Developing 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 Go-based ecosystems
  • Establishing Messaging Infrastructure
    • Setting up Kafka, RabbitMQ, or NATS via Docker Compose
    • Configuring topics, exchanges, queues, and channels
    • Reviewing Go client libraries
  • Practical Workshop
    • Creating a sample Go microservice that emits and processes events
    • Connecting the service with the selected event broker
    • Debugging and verifying event flows

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

  • Deploying Go Event-Driven Applications on Kubernetes
    • Containerizing Go applications for production environments
    • Deploying Kafka (or alternative brokers) on Kubernetes clusters
    • Introducing KEDA (Kubernetes Event-Driven Autoscaling) for scaling event consumers
  • Error Handling and Monitoring
    • Managing event failures through established strategies
    • Enhancing observability within Go services
  • Advanced Topics & Q&A
    • Investigating Serverless Event-Driven Architectures with Go
    • Event Choreography versus Orchestration: Applicable scenarios and design considerations
    • Addressing common pitfalls, key takeaways, and industry best practices
    • Open Q&A session and collaborative troubleshooting

Requirements

  • Proficiency in Go (Golang), specifically in utilizing goroutines and channels.
  • Foundational knowledge of software architecture patterns, including monolithic and microservice models.
  • Familiarity with Docker and Docker Compose.
  • Basic understanding of REST APIs and networking principles.
  • Experience with command-line utilities and Git.
  • While not mandatory, prior exposure to Kubernetes and messaging systems like Kafka, RabbitMQ, or NATS is advantageous.

Target Audience

  • Go developers focused on building scalable, event-driven applications.
  • Software engineers migrating from monolithic or REST-centric architectures to asynchronous systems.
  • DevOps and cloud engineers working with containerized or distributed microservices.
  • Technical architects and system designers investigating EDA patterns through Go.

Number of participants


Price per participant

Testimonials (7)

Upcoming Courses

Related Categories