Event sourcing, distributed systems and CQRS
Event sourcing, CQRS, distributed systems, event-driven, eventual consistency — a lot of buzzwords. Even if you develop a “simple, straight-forward” enterprise application, you should now about the significance and impacts of transactions — or the lack thereof — and eventual consistency.
This 1-day workshop tackles the shortcomings and pitfalls of CRUD-based enterprise applications, where the benefits of event sourced and event-driven applications, respectively, are and how to implement these using Java technology. We will see the concepts and possibilities of event sourced systems. We will cover how event-driven architectures are well suited for real-world use cases and how they communicate. We will also see how to design eventually consistent use cases that still handle our business processes in a reliable yet scalable way. Ultimately, we will introduce and implement CQRS (Command Query Responsibility Segregation) applications.
- Shortcomings of CRUD-based systems
- Motivations and concepts of event sourcing
- How real-world use cases are often eventually consistent
- Event-driven architectures
- Reliably communicating via events
- How to build event stores
- Concepts and motivations behind CQRS
- Implementing CQRS applications using Java and Apache Kafka
- When to choose consistency or scalability
The goal of this workshop is to build up awareness of the consistency versus scalability in enterprise systems. After this workshop day the attendees will know to design scalable, distributed enterprise applications that make use of event sourcing and event-driven architectures using the CQRS principle. They will know how to develop CQRS applications using Java and an eventing solution such as Apache Kafka.
The topic of this in-house workshop will be tailored to your specific situation. For example, if your project requires to be designed in a scalable, distributed way, the workshop contents will be customized for your specific project. Attendees greatly benefit from workshop contents that match their specific domain as much as possible.
This workshops is targeted for software developers and architects who want to be able to design and implement scalable, distributed microservices. Basic knowledge of Java and enterprise systems is required for this workshop. All workshop material will be made available for attendees.