It were 2 intensive days full of collaboration with people inspired by Domain Driven Design and Event Driven systems. Please, read on for my key takeaways.
During the last 2 years I’m discovering the world of Domain Driven Design and trying to apply the DDD way of thinking on a daily basis. I have to admit it is a steep learning curve, but as I understand more and more about it, I’m convinced this way of thinking really helps to build better systems faster.
Therefor visiting DrivUn and AxonIQ Conference is a perfect way to get in touch with DDD experts.
My DrivUn experience
This was the first attending an unconference, so I didn’t really know what to expect.
But as the program got body, I spotted some nice topics I had a feeling I could contribute.
Also, I added a topic myself, about how to start with DDD Strategic Design.
Contributing to the topics I attended gave me a good feeling and gave me confidence about how much I have learned about Domain Driven Design and the tools the community developed over the years.
I’d like to highlight 2 topics I attended: Strategic Design and Comparison of CQRS frameworks or solutions.
I was happily surprised a large group gathered around the topic I proposed: How to start with Strategic design.
I explained the problem space to the group and already several ideas were proposed.
There we some nice insights and discussions and at the end I had a list of ideas where to start!
Comparison of CQRS/ES solutions
Another topic I attended was about CQRS solutions.
We wanted to figure out which characteristics you want or don’t want from a solution and which CQRS and EventSourcing solutions exist.
I was surprised by the number of solutions which are out there, Java or another language.
We also came to the insight you could divide them into frameworks and solutions. A framework helps you to write code, without too much boilerplate, so you can focus on business logic.
A solution would be defined as a product you can use to store your events and helps you focus on business logic.
The picture below shows what came to our minds.
The unconference format explained
DrivUn is an unconference. An unconference is gathering where the people make the program and there are some simple rules:
- Whoever shows up are the right people
Don’t be bothered if only a few people join a session you proposed; those are the ones really interested in the topic. Focus on that; having the right people means you will get the best out of it.
- Whatever happens, is the only thing that could happen
Having the right people in the session (see principle #1) ensures it will happen the way the participants decide for it to happen. Sometimes the end result may differ from what you expected, but that’s not necessarily bad.
- Whenever it starts, it is the right time
As the unconference gives freedom to the participants, the timing of the sessions may be affected. But if a session or a topic starts late or in a different way, it is because other interesting interactions are going on simultaneously.
- When it’s (not) over, it’s (not) over
Sometimes, the discussions on a topic may finish before the time slot ends. That’s not bad. If there’s nothing more to discuss, learn, or share, you can move to another session or raise another topic. On the contrary, sometimes the time slot ends, and there is still an interesting ongoing discussion. Don’t let the clock dictate that you should stop if you have more interesting things to share. You can continue the conversation elsewhere if you need to leave the space for the next session.
The unconference format is very powerful for both gaining and sharing knowledge.
You group with some people around a topic and trying to help each other with new insights.
The next day it was time for the conference, just as you know conferences: Organised talks.
My highlights are the keynote with Allard Buijze [ ] and Josh Long [ ] and a talk performed by Marc Klefter about the different types of events and how to handle them.
Axon’s Bootiful history
Allard and Josh have a long history and told us how they helped each other to have a seamless integration between Axon Framework/Server and Spring Boot. It is a bonus to have Josh Long in the house as it’s always fun to see Josh Long do live coding and talking at the same time! We are lucky the talk is recorded and published on YouTube.
Powering event-driven APIs with event sourcing
brought us the insight there are different types of events; events inside a bounded context and outside a bounded context.
When we talk about events, we usually mean the events inside a bounded context, also known as domain or delta events.
But how do you let other bounded contexts know something has changed?
Publishing the delta events makes the receiver responsible for building up a state from those delta events, which easily could go wrong when an event is missed. His proposal is to use Event-Carried State Transfer (ECST), which contains the full state of an entity or a business concurrence. Watch Marc’s talk to get the full story.
All the talks are recorded and published on YouTube.