NP URI: www.nobleprog.co.ma/cc/edabspk Undefined array key 0 /apps/hitra7/npfrontend/nptemplates/default.php:137 Array ( [0] => Array ( [file] => /apps/hitra7/npfrontend/nptemplates/default.php [line] => 137 [function] => {closure:/apps/hitra7/npfrontend/index.php:5} [args] => Array ( [0] => 2 [1] => Undefined array key 0 [2] => /apps/hitra7/npfrontend/nptemplates/default.php [3] => 137 ) ) [1] => Array ( [file] => /apps/hitra7/npfrontend/modules/course/course.php [line] => 141 [args] => Array ( [0] => /apps/hitra7/npfrontend/nptemplates/default.php ) [function] => require_once ) [2] => Array ( [file] => /apps/hitra7/npfrontend/core/routes.php [line] => 16 [function] => course_menu_callback [args] => Array ( [0] => /cc/edabspk ) ) [3] => Array ( [file] => /apps/hitra7/npfrontend/__index.php [line] => 94 [args] => Array ( [0] => /apps/hitra7/npfrontend/core/routes.php ) [function] => require_once ) [4] => Array ( [file] => /apps/hitra7/npfrontend/index.php [line] => 17 [args] => Array ( [0] => /apps/hitra7/npfrontend/__index.php ) [function] => include_once ) [5] => Array ( [file] => /apps/hitra7/index.php [line] => 65 [args] => Array ( [0] => /apps/hitra7/npfrontend/index.php ) [function] => include_once ) ) NP URI: www.nobleprog.co.ma/cc/edabspk Undefined array key 1 /apps/hitra7/npfrontend/nptemplates/default.php:137 Array ( [0] => Array ( [file] => /apps/hitra7/npfrontend/nptemplates/default.php [line] => 137 [function] => {closure:/apps/hitra7/npfrontend/index.php:5} [args] => Array ( [0] => 2 [1] => Undefined array key 1 [2] => /apps/hitra7/npfrontend/nptemplates/default.php [3] => 137 ) ) [1] => Array ( [file] => /apps/hitra7/npfrontend/modules/course/course.php [line] => 141 [args] => Array ( [0] => /apps/hitra7/npfrontend/nptemplates/default.php ) [function] => require_once ) [2] => Array ( [file] => /apps/hitra7/npfrontend/core/routes.php [line] => 16 [function] => course_menu_callback [args] => Array ( [0] => /cc/edabspk ) ) [3] => Array ( [file] => /apps/hitra7/npfrontend/__index.php [line] => 94 [args] => Array ( [0] => /apps/hitra7/npfrontend/core/routes.php ) [function] => require_once ) [4] => Array ( [file] => /apps/hitra7/npfrontend/index.php [line] => 17 [args] => Array ( [0] => /apps/hitra7/npfrontend/__index.php ) [function] => include_once ) [5] => Array ( [file] => /apps/hitra7/index.php [line] => 65 [args] => Array ( [0] => /apps/hitra7/npfrontend/index.php ) [function] => include_once ) ) NP URI: www.nobleprog.co.ma/cc/edabspk Undefined array key 2 /apps/hitra7/npfrontend/nptemplates/default.php:137 Array ( [0] => Array ( [file] => /apps/hitra7/npfrontend/nptemplates/default.php [line] => 137 [function] => {closure:/apps/hitra7/npfrontend/index.php:5} [args] => Array ( [0] => 2 [1] => Undefined array key 2 [2] => /apps/hitra7/npfrontend/nptemplates/default.php [3] => 137 ) ) [1] => Array ( [file] => /apps/hitra7/npfrontend/modules/course/course.php [line] => 141 [args] => Array ( [0] => /apps/hitra7/npfrontend/nptemplates/default.php ) [function] => require_once ) [2] => Array ( [file] => /apps/hitra7/npfrontend/core/routes.php [line] => 16 [function] => course_menu_callback [args] => Array ( [0] => /cc/edabspk ) ) [3] => Array ( [file] => /apps/hitra7/npfrontend/__index.php [line] => 94 [args] => Array ( [0] => /apps/hitra7/npfrontend/core/routes.php ) [function] => require_once ) [4] => Array ( [file] => /apps/hitra7/npfrontend/index.php [line] => 17 [args] => Array ( [0] => /apps/hitra7/npfrontend/__index.php ) [function] => include_once ) [5] => Array ( [file] => /apps/hitra7/index.php [line] => 65 [args] => Array ( [0] => /apps/hitra7/npfrontend/index.php ) [function] => include_once ) )

Course Outline

Day 1: Foundations of Event-Driven Architecture in Go

  • Introduction to EDA
    • What is Event-Driven Architecture?
    • Comparing Monolithic, Microservices, and Event-Driven Systems
    • How Go’s concurrency model and lightweight goroutines make it ideal for EDA
  • Core Concepts & Benefits
    • Decoupling, scalability, and resilience in enterprise systems
    • Defining Events, Producers, Consumers, and Event Brokers
    • Real-world examples and case studies where Go powers high-performance event systems
  • CAP Theorem & Trade-offs in EDA
    • Overview of Consistency, Availability, and Partition Tolerance
    • Impact of EDA on these properties
    • Strategies for balancing consistency and availability in Go-based systems

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

  • Understanding Event Types
    • Domain Events vs. Integration Events
    • Synchronous vs. Asynchronous events in Go applications
  • Messaging Patterns in Practice
    • Publish-Subscribe (Pub/Sub) in Go 
    • How to design and structure event payloads using JSON, Protocol Buffers, or Avro in Go
  • Implementing Event Handling in Go
    • Overview of popular Go libraries and frameworks for messaging 
    • Code examples: dispatching and processing events using idiomatic Go patterns
    • Hands-on session: Building a simple event-driven service in Go

Day 3: Messaging Systems & Event Brokers with Go

  • Selecting and Integrating Event Brokers
    • Overview of popular brokers: Apache Kafka, RabbitMQ, and NATS
    • Comparison of use cases and best practices for Go-based systems
  • Setting Up Messaging Infrastructure
    • Docker Compose setup for Kafka, RabbitMQ, or NATS
    • Configuring topics, exchanges, queues, and channels
    • Go client libraries overview
  • Hands-On Workshop
    • Building a sample Go microservice that produces and consumes events
    • Integrating the service with the chosen event broker
    • Debugging and testing event flows

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

  • Deploying Go Event-Driven Applications on Kubernetes
    • Containerizing Go applications for production
    • Deploying Kafka (or other brokers) on Kubernetes clusters
    • Introduction to KEDA (Kubernetes Event-Driven Autoscaling) for scaling event consumers
  • Error Handling and Monitoring
    • Handling event failures with strategies 
    • Implementing observability in Go services
  • Advanced Topics & Q&A
    • Exploring Serverless Event-Driven Architectures with Go
    • Event Choreography vs. Orchestration: Use cases and design considerations
    • Common pitfalls, lessons learned, and best practices
    • Open Q&A session and interactive troubleshooting

 

Requirements

  • Proficiency in Go (Golang), including use of goroutines and channels
  • Basic understanding of software architecture models such as monoliths and microservices
  • Familiarity with Docker and Docker Compose
  • Basic knowledge of REST APIs and networking concepts
  • Experience with command-line tools and Git
  • Optional but helpful: prior exposure to Kubernetes and messaging systems like Kafka, RabbitMQ, or NATS

Audience

  • Go developers building scalable, event-driven applications
  • Software engineers transitioning from monolithic or REST-based architectures to asynchronous systems
  • DevOps and cloud engineers working with containerized or distributed microservices
  • Technical architects and system designers exploring EDA patterns using Go
 28 Hours

Testimonials (7)

Upcoming Courses

Related Categories