Skip to main content

The outcome of my 10 unique years of deep dive into DDD/CQRS/ES

At the beginning of this year, I launched my personal website (for English version 

I specialize in Domain-Driven Design, Command Query Responsibility Segregation, Event Sourcing on the JVM platform and with 10 years of experience in that field and the knowledge gathered over this time, I finally feel prepared and ready to share it with a broader audience.

I should have done this a gazillion years ago, but hey… better late than never. 

The story

I’ve been doing Domain-Driven Design since 2011. During this time I was able to truly dig deep into this topic, since I was working mainly on a single product in an extremely complex and dynamic domain.

Our team was responsible for delivering a new solution (next to the existing one) in the Core Domain of this product. One might say that this was a rewrite of a Legacy System, but it wasn’t. The other part of the system was still profitable. It was just doing things in a less automated and less human-readable way. 

We carefully and strategically decided what to put in the new Core, and what to use from the existing parts. We had to take under consideration all the factors - client’s customizations, reporting, and other complex Subdomains of that system.

In one step I introduced Domain-Driven Design, Command Query Responsibility Segregation, and Event Sourcing together with a new language (Scala) to our Java-based system. It was challenging, but we’ve made it.

I started as a technical leader of a single agile team. After some time, the amount of work was big enough to split the team into two and new people joined us. 

Then the time started to shrink. We wanted to launch our product at a specific time of the year, due to the market's conditions. It was clear that we couldn’t make it with those two teams. 

The decision was made to put all the company's effort to that project. As it wasn’t enough, we also insourced two additional teams from the outside. As you might guess, it was a fun time.

I ended up as an architect, and finally we were able to deliver the very first version of that product on time.


Shortly after the release we reduced our team and started to work on paying technical debt, stabilization, and, of course, more features.

Since that time, for a couple of years, I was able to see where DDD/CQRS/ES combo did work, and where it didn’t. We had to withdraw from those concepts in some places, whereas in others it was a perfect fit. 

I also had a unique opportunity to see how the system evolved over the years and how decisions that had been made were influencing the future.

This is a perspective that cannot be gained in any other way.

And I offer this unique DDD/CQRS/ES experience in a form of consulting and/or training workshops - online and onsite. I will help your development team become strategically more efficient by aligning them with the business domain they are working in, instead of just focusing on technical solutions.

My offer is not theoretical - I have already conducted a couple of successful training sessions during my journey. I’ve been there and I’ve done that.

As a result, I prepared two workshops, which serve as a base. They can be aligned with your team goals and preferences in order to help you the most. We can work together to ensure that these workshops will be tailored to your needs.

You can see a brief description of those below.

Training Domain-Driven Design Applied

Domain-Driven Design Applied.

Learn how to deal with complexity in your business domain.

Discover strategic patterns that will help you find the most valuable parts of your system and build independent teams working on them.

Explore tactical patterns that will facilitate communication between developers and testers with the business.

Apply what you've learned right away, directly in the code.

Training CQRS and Event Sourcing Applied with Axon Framework

CQRS and Event Sourcing Applied with Axon Framework.

Find out why business events are an ideal solution for information systems.

Use them to automate your business processes in a simple and transparent way for developers and business alike. Meet Axon Framework, which naturally supports Command-Query Responsibility Segregation and Event Sourcing in Java, Scala, and Kotlin.

Take part in a highly interactive workshop and see how to implement CQRS architecture.

Contact me

After 10 years of deep immersion into:

  • Domain-Driven Design, Command Query Responsibility Segregation, and Event Sourcing, 

  • work as a Team Leader and Software Architect, 

  • management of the teams structure and communication…

… I know exactly how and where to introduce DDD/CQRS/ES to any new or existing system.

Even a legacy one.

Let’s talk at!