Course Outline
Day 1: Foundations of Event-Driven Architecture in Go
- Introduction to EDA
- What constitutes Event-Driven Architecture?
- A comparative analysis of Monolithic, Microservices, and Event-Driven systems
- Why Go’s concurrency model and lightweight goroutines are well-suited for EDA
- Core Concepts & Benefits
- Achieving decoupling, scalability, and resilience in enterprise environments
- Defining Events, Producers, Consumers, and Event Brokers
- Practical examples and case studies showcasing Go in high-performance event systems
- CAP Theorem & Trade-offs in EDA
- An overview of Consistency, Availability, and Partition Tolerance
- The effect of EDA on these properties
- Approaches for balancing consistency and availability in Go-based systems
Day 2: Events, Messages, and Communication Patterns in Go
- Understanding Event Types
- Distinguishing between Domain Events and Integration Events
- Synchronous versus Asynchronous events within 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 in Go
- Implementing Event Handling in Go
- Survey of popular Go libraries and frameworks for messaging
- Code demonstrations: dispatching and processing events via 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
- An introduction to leading brokers: Apache Kafka, RabbitMQ, and NATS
- Evaluating use cases and best practices for Go-based systems
- Setting Up Messaging Infrastructure
- Configuring Kafka, RabbitMQ, or NATS using Docker Compose
- Setting up topics, exchanges, queues, and channels
- Overview of Go client libraries
- Hands-On Workshop
- Creating a sample Go microservice that generates and consumes events
- Connecting the service to the selected event broker
- Debugging and testing event workflows
Day 4: Deploying, Monitoring, and Advanced Topics in Go EDA
- Deploying Go Event-Driven Applications on Kubernetes
- Containerizing Go applications for production use
- Deploying Kafka (or alternative brokers) onto Kubernetes clusters
- Introducing KEDA (Kubernetes Event-Driven Autoscaling) for managing event consumer scaling
- Error Handling and Monitoring
- Addressing event failures through defined strategies
- Establishing observability within Go services
- Advanced Topics & Q&A
- Investigating Serverless Event-Driven Architectures with Go
- Event Choreography vs. Orchestration: Application scenarios and design considerations
- Common pitfalls, key takeaways, and industry best practices
- Open Q&A session and collaborative troubleshooting
Requirements
- Proficiency in Go (Golang), with particular focus on goroutines and channels.
- A foundational grasp of software architecture models, including monolithic and microservice structures.
- Familiarity with Docker and Docker Compose.
- Basic understanding of REST APIs and networking principles.
- Practical experience with command-line interfaces and Git.
- While optional, prior exposure to Kubernetes and messaging platforms like Kafka, RabbitMQ, or NATS is advantageous.
Target Audience
- Go developers focused on constructing scalable, event-driven applications.
- Software engineers shifting from monolithic or REST-centric architectures to asynchronous systems.
- DevOps and cloud engineers dealing with containerized or distributed microservices.
- Technical architects and system designers investigating EDA patterns implemented in Go.
Custom Corporate Training
Training solutions designed exclusively for businesses.
- Customized Content: We adapt the syllabus and practical exercises to the real goals and needs of your project.
- Flexible Schedule: Dates and times adapted to your team's agenda.
- Format: Online (live), In-company (at your offices), or Hybrid.
Price per private group, online live training, starting from 5200 € + VAT*
Contact us for an exact quote and to hear our latest promotions
Testimonials (7)
we write some code in GO and we learn some stuff regarding EDA like events, when and how.
Alin
Course - Event Driven Architecture Custom
It was an interactive course, no time to sleep :)). Also was nice to work in teams and then to debate according to each result.
Alina
Course - Event Driven Architecture Custom
I enjoyed most the discussions and the examples provided so we could reach by ourselves to the conclusions he wanted to share with us. I liked the pace, the english, the patience, that even if we did not came with the best answer he would not say it is wrong, but came with examples of what could be better.
Simona
Course - Event Driven Architecture Custom
The open discussions and going from understanding the problems/reasons (the `why`) to `EDA`.
Constantin
Course - Event Driven Architecture Custom
the approach of presenting things heavily based on interaction and examples
Virgil
Course - Event Driven Architecture Custom
The interactive nature of the course The self-discovery learning approach where you found answers yourselves The practical focus with real-life examples that made concepts more relatable
Roxana Sandu
Course - Event Driven Architecture Custom
Very interactive. The trainer was very knowledgeable and patient.