<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Event Storming on Maarten on IT</title><link>https://maarten.mulders.it/categories/event-storming/</link><description>Recent content in Event Storming on Maarten on IT</description><generator>Hugo</generator><language>en-us</language><copyright>&amp;copy; 2013 - 2026 Maarten Mulders</copyright><lastBuildDate>Mon, 27 Sep 2021 21:26:41 +0200</lastBuildDate><atom:link href="https://maarten.mulders.it/categories/event-storming/index.xml" rel="self" type="application/rss+xml"/><item><title>Devoxx 2017</title><link>https://maarten.mulders.it/2018/01/devoxx-2017/</link><pubDate>Sun, 07 Jan 2018 14:15:35 +0200</pubDate><guid>https://maarten.mulders.it/2018/01/devoxx-2017/</guid><description>&lt;p&gt;Almost two months ago I visited Devoxx 2017.
It&amp;rsquo;s about time to write some notes on the stuff I learnt there!&lt;/p&gt;
&lt;h4 id="event-storming--ddd-workshop"&gt;Event Storming &amp;amp; DDD workshop&lt;/h4&gt;
&lt;p&gt;The week started off with a full afternoon workshop led by &lt;a href="https://www.twitter.com/@stijnvp"&gt;Stijn Vanpoucke&lt;/a&gt;.
The workshop consisted of small pieces of theory, alternated with exercises using post-it&amp;rsquo;s and markers.&lt;/p&gt;
&lt;p&gt;A few of the theoretic pieces:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;An &lt;strong&gt;event&lt;/strong&gt; is something that has happened in the past.
It is usually phrased in past tense.
It should be understandable for business users.&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;command&lt;/strong&gt; is an user-initiated action.
It explains the origin and sometimes the reason for the action.&lt;/li&gt;
&lt;li&gt;An &lt;strong&gt;entity&lt;/strong&gt; is an individual thing.
It has a unique identity.
Often, entities are mutable.&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;value object&lt;/strong&gt; is an non-unique value.
It is often immutable.
Its equality is based on it&amp;rsquo;s attributes.
It should be able to validate itself.
They can be combined.&lt;/li&gt;
&lt;li&gt;An &lt;strong&gt;aggregate&lt;/strong&gt; is a combination of &lt;em&gt;entities&lt;/em&gt; and &lt;em&gt;value objects&lt;/em&gt;.
They are structured in a hierarchy.
Its root is always an &lt;em&gt;entity&lt;/em&gt;.
Aggregates contain business rules.
Note that a bigger aggregate is not always better!
To circumvent this, aggregates can use &lt;em&gt;soft links&lt;/em&gt; based on the unique identity of other entities.&lt;/li&gt;
&lt;li&gt;The &lt;strong&gt;bounded context&lt;/strong&gt; describes the context from which you look at it.
Take a &lt;em&gt;pen&lt;/em&gt; as example; what a &lt;em&gt;pen&lt;/em&gt; is depends on the context from which you look at it.
To stress the fact that it has boundaries, it is called a &lt;em&gt;bounded&lt;/em&gt; context.
Bounded contexts support the idea of having &amp;ldquo;one team, one (business) language&amp;rdquo;.
The bigger the bounded context is, the bigger the language, whether artificial or natural.
Finally, multiple domains can have different words for the same concept.
A sales department might speak of &lt;em&gt;products&lt;/em&gt; while inventory management might name the same concept &lt;em&gt;article&lt;/em&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="kotlin-for-java-programmers"&gt;Kotlin for Java programmers&lt;/h4&gt;
&lt;p&gt;This year had a lot of talks about Kotlin scheduled.
To visit them all would take too much time, so I decided to follow just one by &lt;a href="https://www.twitter.com/@venkat_s"&gt;Venkat Subramaniam&lt;/a&gt;.
I figured it would give me about the same amount of content&amp;hellip;&lt;/p&gt;</description></item></channel></rss>