DDD/Event Sourcing and Business experts

133 views
Skip to first unread message

Prakhyat Mallikarjun

unread,
Sep 8, 2014, 7:16:40 AM9/8/14
to akka...@googlegroups.com
Hi Team,

What is the recommended way for DDD with event sourcing?

Which comes first aggregate routes modelling or events to the system?

Wanted to understand will event sourcing impact designing aggregate roots of the system?

What are the recommendations or knowledge required for Business experts to work with event sourcing systems?  

Is any expertise required by Business experts to design model in event sourcing system?

-Prakhyat M M

Olger Warnier

unread,
Sep 8, 2014, 1:49:29 PM9/8/14
to akka...@googlegroups.com
Hi Prakhyat,

Vaughn Vernon has some articles an how to go about DDD and akka see https://vaughnvernon.co for the details.
Your questions about the way to interact with business experts may get better answers in the DDD/CQRS group.

To give you some options: You may write a DSL used inside the persistent actor or choose to use another kind of language to express the logic of the business expert. We are currently building a persistent actor that runs CMMN based cases (processes), that's a more visual way of defining your business logic.

Kind regards,

Olger

Prakhyat Mallikarjun

unread,
Sep 9, 2014, 2:07:36 AM9/9/14
to akka...@googlegroups.com
Hi Olger,

Thanks.

I have done similar posting in DDD/CQRS group. Thought lets get ideas from other akka users also, so this post in this group.

I did not understand what do you mean by CMMN based cases (processes)?

We are currently building a persistent actor that runs CMMN based cases (processes), that's a more visual way of defining your business logic.
[Prakhyat] It would be great if you can share code example. I want to understand how are you handling your business logic?

-Prakhyat M M

Olger Warnier

unread,
Sep 9, 2014, 3:10:29 AM9/9/14
to akka...@googlegroups.com, akka...@googlegroups.com
Hi Prakhyat, 

CMMN is Case Management Model and Notation (language) (see http://www.omg.org/spec/CMMN/1.0/) for more details. 

We use it like you want to use the drools actor, let it generate events stored in the event store. 

Kind regards,

Olger



--
>>>>>>>>>> Read the docs: http://akka.io/docs/
>>>>>>>>>> Check the FAQ: http://doc.akka.io/docs/akka/current/additional/faq.html
>>>>>>>>>> Search the archives: https://groups.google.com/group/akka-user
---
You received this message because you are subscribed to a topic in the Google Groups "Akka User List" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/akka-user/Glgn2bMyM1k/unsubscribe.
To unsubscribe from this group and all its topics, send an email to akka-user+...@googlegroups.com.
To post to this group, send email to akka...@googlegroups.com.
Visit this group at http://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.

Vaughn Vernon

unread,
Sep 10, 2014, 10:29:07 PM9/10/14
to akka...@googlegroups.com
Hi Prakhyat,

I have successfully involved domain experts in project-specific workshops using a Model/Event Storming approach that led to model development using Akka. If you have a change to attend one of my workshops we go in to Event Storming as a classroom exercise. Otherwise, you might search online for content by Alberto Brandolini and Model Storming. Basically it involves making Events the primary language tool (event types in the past tense and in time order from left to right). After several cycles through refining steps (maybe a few days) you finally add Commands (verbs) and Aggregate (data nouns) as a technical step to understand where your actors are, but this takes a backseat to the Events which define the start-to-finish business process. Depending on the complexity of your business process you can probably get through the whole exercise in 2-3 days. (I say this because you may think you can finish in 1 day, but basically sleeping on your conclusions for 1 or 2 nights will open up new modeling break-throughs.)

In my latest effort we completely disrupted the CIO's project direction with a much better and much more insightful business process, which is what Model/Event Storming leads to.

Best,
Vaughn

Prakhyat Mallikarjun

unread,
Sep 11, 2014, 2:17:02 AM9/11/14
to akka...@googlegroups.com
Hi Vaughn,

Thanks for insight and guidance.

I always had this confusion where to begin with first events or domain. Your input clarifies a lot. 

But I have one fundamental major question, consider if we one takes up domain modeling first and later events, what one will loose? or any impacts/problems?what kinds of defects will occur?

What benefits we can reap by doing events first?

-Prakhyat M M 

Vaughn Vernon

unread,
Sep 11, 2014, 2:48:35 AM9/11/14
to akka...@googlegroups.com
Events first keeps you strictly on business process, which is how the business thinks. Typically focusing on aggregates first can drive you toward a more technical model, and you will tend to confuse the experts with discussions about aggregates (which they don't understand, nor should they be forced to understand). Business people can very easily understand events.

This doesn't mean that you can't model aggregates first, but don't make it a technical discussion. You will have to discuss purely on the topic of mental model concepts.

The other problem is that if you remain too aggregate focused your aggregates will probably suffer from bloat and you will create large aggregates. If you model event centric then you can choose the size of your aggregates as a side-effect of understanding the business process and you can probably do a better job of designing smaller aggregates that are eventually consistent with the others.

Prakhyat Mallikarjun

unread,
Sep 11, 2014, 2:53:34 AM9/11/14
to akka...@googlegroups.com
Hi Vaughn,

Thanks again for your insight. Your explanation clarifies a lot. 

-Prakhyat M M
Reply all
Reply to author
Forward
0 new messages