Event-Driven Microservices with Axon Framework

Allard Buijze 2-Day Workshop
Tue-Wed, Sept 11-12

The architectural patterns of Domain Driven Design, Command Query Segregation Responsibility and Event Sourcing have proven to be important ingredients for building high performing, scalable applications. Audit requirements and the use of data analytics are also important reasons for choosing these patterns. Axon Framework builds on top of these concepts, helping developers build applications that evolve along with the domain.

This training is a very practical introduction to building evolutionary message-driven microservices systems using Axon Framework. The course starts with a general introduction into Axon Framework and its building blocks. On the second day, these components are scaled out, and we elaborate on dealing with several aspects that are important for distributed systems.

What the attendee will learn:

  • Thoroughly understand the fundamentals of CQRS and Event Sourcing in relation to Domain Driven Design
  • How to set up projects with Axon Framework for developing complex, future-proof applications.
  • How Axon Framework helps to securely put the domain model into production
  • How to evolve an application from structured monolith to a distributed system of microservices
  • How to address aspects related to distributed systems
  • How to get started quickly!

Program Outline:

  • Day 1
    • Getting started by setting up the infrastructure components and organizing the codebase practically
    • Aggregates: learn how to design, implement, and test Aggregates
    • Event handling: implementing and configuring the event handlers; asynchronous vs synchronous, transaction management
    • Query Model: the design process for projections, denormalization tactics and different ways to update query model
    • Event sourcing: how to apply event sourcing, snapshotting, and reconstructing a projection from historic events
    • Sagas: coordinating activity between components – implementation, configuration, testing, and common pitfalls
  • Day 2
    • Dealing with Refactoring and evolution of your application.
    • Distributing messages and scaling components.
    • Performing replays of the Event Store.
    • Advanced configuration and tuning.
    • Deployment scenarios for event-driven systems
    • Monitoring, tracing, measuring throughout, latency

Target Audience

This training is for Software Architects, Software Developers, Technical Team Leads and Enterprise Architects. The labs and examples use Java (and a bit of Kotlin). While the concepts are applicable to other languages as well, the labs expect some proficiency in Java.

Audience Requirements

  • A good understanding of the Java language is required
  • Enterprise application development experience is recommended.
  • Basic knowledge of Event Sourcing, DDD and CQRS.

Attendee preparation

  • Developers are expected to bring their own laptop with an IDE of their choice.
  • It is recommended to have Maven pre-installed
  • Some labs require RabbitMQ. If you do not have Docker installed it is recommended to pre-install RabbitMQ.

About the Trainer

Allard Buijze is founder and chief technology officer at AxonIQ. A former software architect within the fields of scalability and performance, he has worked on several projects where performance is often a recurring theme. Allard is convinced that a good domain model is the beginning of contributing to the overall performance of an application and developed the Axon Framework out of this conviction.

Allard is a regular speaker at conferences and a seasoned trainer. He is passionate about sharing knowledge, often going off the beaten path to explore new possibilities.