Domain Driven Design
&
Event Storming

Domain Driven Design


  • It’s a technique to design software systems
  • It improves communication between stakeholders and development team
  • Better understanding of the wider picture
  • Helps building modular and maintainable systems

Ubiquitous language


  • DDD requires to define a ubiquitous language,
    a lingua franca across stakeholders
  • We build a shared and continuously
    updated domain glossary
  • This helps domain experts and developers
    to use a clear and well-defined language and
    minimize risk of misunderstanding

Event Storming


  • It’s a process that helps to identify 5 main
    parts of the system
    • events
    • roles
    • views
    • commands
    • policies

Event Storming


  • Events: these are the most important part and identify what features the system provide and how they work
  • Roles: what type of users can use the system
  • Views: used by users to take decisions and act
  • Commands: operations that the users will perform on the system
  • Policies: business rules that drive specific scenarios

How Event Storming works


  • We use a large whiteboard; in our case it’ll be a digital one
  • We put virtual post-it notes on the whiteboard
  • Each post-it will have a specific color,
    based on the type of item identified

    how will it look like?



    The following are examples of full outcomes
    of many Event Storming sessions

    Event storming sessions


    https://raw.githubusercontent.com/ddd-crew/eventstorming-glossary-cheat-sheet/master/_resources/big-picture.jpg

    Event storming sessions

    https://www.softwarecraftsperson.com/images/event-storming.jpg

    EVENT STORMING SESSIONS

    https://miro.medium.com/v2/resize:fit:1400/1*3EA5STXGGFDLf3FTIQhotQ.png

    EVENT STORMING SESSIONS

    https://res.cloudinary.com/wiop/image/upload/ymoyay7l2rt9q6vhfn5fv8z87oq2

    EVENT STORMING SESSIONS

    https://www.monterail.com/hs-fs/hubfs/event.png?width=1967&name=event.png

    OUR DIGITAL WHITEBOARD


    ISN'T THIS MESSY?!


    • Yes, it is... and it should be
    • The purpose is to brain storm together
    • ... and converge the different stakeholders views

    LET's GET STARTED


    • I hope this will set expectations for tomorrow
    • If you like to read something more, this one is a nice overview


    DDD & Event Storming

    By Davide Duran

    DDD & Event Storming

    • 193