Course Outline
Day 1: Foundations of Event-Driven Architecture in Go for Government
- 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 in government applications
- Core Concepts & Benefits
- Decoupling, scalability, and resilience in enterprise systems for government operations
- Defining Events, Producers, Consumers, and Event Brokers
- Real-world examples and case studies where Go powers high-performance event systems for government agencies
- CAP Theorem & Trade-offs in EDA
- Overview of Consistency, Availability, and Partition Tolerance
- Impact of EDA on these properties in the context of government systems
- Strategies for balancing consistency and availability in Go-based systems for government use
Day 2: Events, Messages, and Communication Patterns in Go for Government
- Understanding Event Types
- Domain Events vs. Integration Events
- Synchronous vs. Asynchronous events in Go applications for government services
- Messaging Patterns in Practice
- Publish-Subscribe (Pub/Sub) in Go for government systems
- How to design and structure event payloads using JSON, Protocol Buffers, or Avro in Go for government applications
- Implementing Event Handling in Go for Government
- Overview of popular Go libraries and frameworks for messaging suitable for government use
- Code examples: dispatching and processing events using idiomatic Go patterns in government projects
- Hands-on session: Building a simple event-driven service in Go for government applications
Day 3: Messaging Systems & Event Brokers with Go for Government
- Selecting and Integrating Event Brokers
- Overview of popular brokers: Apache Kafka, RabbitMQ, and NATS suitable for government use
- Comparison of use cases and best practices for Go-based systems in the public sector
- Setting Up Messaging Infrastructure for Government
- Docker Compose setup for Kafka, RabbitMQ, or NATS tailored to government requirements
- Configuring topics, exchanges, queues, and channels for government systems
- Go client libraries overview suitable for government use
- Hands-On Workshop for Government
- Building a sample Go microservice that produces and consumes events for government operations
- Integrating the service with the chosen event broker for government systems
- Debugging and testing event flows in government applications
Day 4: Deploying, Monitoring, and Advanced Topics in Go EDA for Government
- Deploying Go Event-Driven Applications on Kubernetes for Government
- Containerizing Go applications for production use in government environments
- Deploying Kafka (or other brokers) on Kubernetes clusters for government systems
- Introduction to KEDA (Kubernetes Event-Driven Autoscaling) for scaling event consumers in government applications
- Error Handling and Monitoring for Government
- Handling event failures with strategies suitable for government operations
- Implementing observability in Go services for government use
- Advanced Topics & Q&A for Government
- Exploring Serverless Event-Driven Architectures with Go for government applications
- Event Choreography vs. Orchestration: Use cases and design considerations for government systems
- Common pitfalls, lessons learned, and best practices in the context of government operations
- Open Q&A session and interactive troubleshooting for government professionals
Requirements
- Proficiency in Go (Golang), including the use of goroutines and channels for government applications.
- Basic understanding of software architecture models, such as monolithic and microservices designs.
- Familiarity with Docker and Docker Compose to support containerization efforts for government projects.
- Fundamental knowledge of REST APIs and networking concepts to ensure secure and efficient data exchange.
- Experience with command-line tools and Git to facilitate version control and collaboration in development environments.
- Optional but beneficial: prior exposure to Kubernetes and messaging systems like Kafka, RabbitMQ, or NATS for enhanced system integration and scalability.
Audience
- Go developers building scalable, event-driven applications for government use.
- Software engineers transitioning from monolithic or REST-based architectures to asynchronous systems for improved performance and flexibility.
- DevOps and cloud engineers working with containerized or distributed microservices to support robust government IT infrastructures.
- Technical architects and system designers exploring Event-Driven Architecture (EDA) patterns using Go to enhance operational efficiency and responsiveness.
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.