Java Microservices: CQRS & Event Sourcing with Kafka

Learn how to create microservices that are based on CQRS & Event Sourcing. Powered by Spring Boot and Apache Kafka.

4.52 (936 reviews)
Udemy
platform
English
language
Software Engineering
category
instructor
Java Microservices: CQRS & Event Sourcing with Kafka
7,042
students
5 hours
content
Sep 2023
last update
$64.99
regular price

What you will learn

CQRS

Event Sourcing

Creating DDD-Oriented Microservices

Using MongoDB as an Event Store

Optimistic Concurrency Control

Event Versioning

Using Apache Kafka as a Message Bus

Implementing the Database-Per-Service Pattern

Spring Framework

Docker

Using MySQL to Implement the Read Database

Replay the Event Store and Recreate the State of the Aggregate

Replay the Event Store and Recreate the Entire Read Database

Replay the Event Store and Recreate the Read Database in a Different Database Type - PostgreSQL

Why take this course?

In this course you will learn how to create Spring Boot microservices that comply to the CQRS and Event Sourcing patterns.

You will not use any CQRS framework, but you will write every line of code that is required to effectively create your own CQRS and Event Sourcing framework using Java and Apache Kafka. While this might sound a little daunting, you will be carefully guided step by step, and gain all the know-how and confidence to become an expert in CQRS and Event Sourcing.

By the end of this course you will know how to:

  • Handle commands and raise events.

  • Use the mediator pattern to implement command and query dispatchers.

  • Create and change the state of an aggregate with event messages.

  • Implement an event store / write database in MongoDB.

  • Create a read database in MySQL.

  • Apply event versioning.

  • Implement optimistic concurrency control.

  • Produce events to Apache Kafka.

  • Consume events from Apache Kafka to populate and alter the read database.

  • Replay the event store and recreate the state of the aggregate.

  • Separate read and write concerns.

  • Structure your code using Domain-Driven-Design best practices.

  • Replay the event store to recreate the entire read database.

  • Replay the event store to recreate the entire read database into a different database type - PostgreSQL.

The ultimate goal of this course is to take a deep-dive into the world of CQRS and Event Sourcing to enable you to create microservices that are super decoupled and extremely scalable.

Reviews

Anıl
September 6, 2023
One of the most valuable course I took for learning software architecture and CQRS and ES I would love to see you make other courses on the specific backend architectures
Taka
August 12, 2023
CQRSの概要をハンズオンで学べるコースでした。 具体的に動作する実用的なサンプルがあるので、実際の現場に適用するイメージを持ちながら学ぶことが出来ました。 Q&Aにも挙がっていますが、Kafkaを含めたスケールで解決できるのは理屈上は理解できますが、イベント全体をリプレイすることには性能的にやや懐疑的なのと、mongodb側のデータ破損への言及がなかったことはやや不安でした。恐らく普通にバックアップで対応するものと思いますが。 現場への適用にはもう少し落とし込みが必要だと思いますが、CQRSを理解する第一歩としては素晴らしいコースだったと思います。
Robin
August 11, 2023
This course is very useful if you want to create an Event Sourcing/CQRS application. Sean takes the time to explain certain patterns and why he applies them very well. The setup for this course could be a single docker-compose file which would make it easer to work with.
Jon
August 11, 2023
The class coding project was well-structured and straight-forward. I ran into a handful of things that didn't work as implemented in the lecture. I was implementing the code as I watched the lectures and ran into a handful of classes that just didn't work; it took some trial-and-error to figure out how to keep his clean interfaces and satisfy the compiler (I'm using Java 17 and the downloaded project uses Java 16).
Mykhailo
July 30, 2023
Great Explanation of Event Sourcing! With examples of Kafka Replay Events to MySQL and PostreSQL database. It is a valuable source of inspiration, if you work with events, but want to learn how do it perfectly well! If you have concurrency issues with your event messaging system, you should switch to Kafka and apply instructions in this course step by step, for your business case. Just do it! You will gradually understand how mathematically perfect Event Sourcing is!
Pablo
June 26, 2023
Really good to follow a code in detail, but lacks when explaining the concepts better in a more interactive easy to understand manner.
Vicent
June 22, 2023
The course itself is quite good, but I can not overlook that following the course to the letter, there is a problem in the order of consuming events in different queues, there is a message from the teacher 10 months ago (at the time I write this message) commenting that he will change that part of the course because it is indeed wrong, but still has not done so. It is very serious that a CQRS course where one of the main points should be to ensure that the final state of the aggregate is consistent is not fulfilled, it does not seem to me a good course.
Nathaniel
May 22, 2023
Instructor just reads his script. Interaction with students with the video is just not there. He will code from class to class and explain the parts; however, the workflow is discussed just after all classes are implemented. He could have made the course shorter if he explained this course like what he did in module #70. Also, this is not beginner friendly as there are topics not known as a beginner.
Taofeek
April 26, 2023
The trainer calm and he has presented the content in a very explanatory way that demystify the hullabaloo on microservices architecture.
Akshat
April 3, 2023
Best and concise illustration, instead of depending on the framework, this course gives the ability to develop our own framework. Covers Most of the topics from the basic building till best use cases : Design Pattern, Reflection, Command, Query, Events, Aggregator, Dispatcher, Handler, Kafka etc
Rafal
March 27, 2023
Nice basic lecture about CQRS and event sourcing. Nice example but some of teh staff is missing regarding multiple events and more complex examples
Bruno
March 13, 2023
It is a very hands-on course, which is good. But I would like to see more of the development of the ideas before their application. For example, there could be a simple implementation, then the exposure of its flaws, and then the final version, fixing the flaws. But other than that, I recommend it!
Lorenz
February 6, 2023
I am glad I've found Sean's course. He's doing a great job. There's one thing I'd like to say. I think it would help to have additional segments focusing on how the objects work together. There is an introduction with a brief overview and that's great. And it would be beneficial to take a bird's view at later points as well to make a connection between the specific code at hand with how it is part of the bigger picture of objects working together. Thanks for the good work!
Donald
January 20, 2023
Useful information, very detailed, however Sean did not type in notes for what the function logic was going to perform. Most developers are not very good and detailing their code.
Jesús
January 18, 2023
It's a great course! It's really well explained and it uses design patterns. This is a course that you must have! I would like to have a course of SAGA with Kafka from this instructor!

Charts

Price

Java Microservices: CQRS & Event Sourcing with Kafka - Price chart

Rating

Java Microservices: CQRS & Event Sourcing with Kafka - Ratings chart

Enrollment distribution

Java Microservices: CQRS & Event Sourcing with Kafka - Distribution chart
3718414
udemy ID
12/21/2020
course created date
11/24/2021
course indexed date
Bot
course submited by