Video Tutorial: A Deep Dive into Domain Modelling

Case study

  • Domain modelling
Domain Modelling (1)

Watch our extensive video series on domain modelling

In this video tutorial series, we delve into the world of domain modelling by exploring the domain of Sharingo, an innovative (fictional) bike-sharing startup.

Whether you're a software enthusiast, a domain-driven design practitioner, or simply curious about the intersection of technology and urban mobility, this video series is for you.

What you will learn:

  • From big picture exploration to refining the model

  • Modelling with constraints

  • Identifying bounded contexts

  • Addressing failure scenarios, and creating a comprehensive model design

  • Refining and refactoring designs for optimal boundaries

About Sharingo

Sharingo is not your ordinary bike-sharing company. It's a dynamic startup that emerged as a spinoff from an established electric bike manufacturer. With a vision to enhance urban mobility, Sharingo provides customers with efficient electric bikes to navigate cities swiftly. Though already active in several cities, Sharingo has ambitious plans for rapid expansion into numerous urban centres.

Meet the Experts

To guide us through this domain modelling journey, we have Thomas Coopman and Gien Verschatse:

Thomas Coopman is a seasoned software consultant and engineer who specialises in the full stack, ranging from domain modelling to frontend development and backend systems. With his extensive experience, Thomas develops and delivers training programs at DDD Academy and Aardling, equipped with a Master of Informatics from the University of Leuven.

Gien Verschatse is an accomplished consultant and software engineer with a profound understanding of domain modelling and software architecture. Her expertise spans both object-oriented and functional programming, primarily in .NET. As a passionate practitioner of Domain-Driven Design, Gien excels at bridging the gap between domain experts, users, and engineers. She also actively shares her knowledge by speaking at international conferences and teaching others.

Part 1 - Understanding the Bigger Picture

In this initial instalment, we kick off with a technique called Big Picture EventStorming. We explore the intricacies of how Sharingo's bike rental process functions for its users. By gaining a high-level overview, we establish a solid foundation to dive deeper into the domain.

Watch Video - View Miro board frame

Part 2 - Refining our Understanding

Building upon the insights gained in Part 1, we take a step further in refining our model. By leveraging the initial high-level overview, we delve into the intricacies of the domain and the challenges that need to be addressed.

Watch Video - View Miro board frame

Part 3 - Adding Commands and Constraints

Now that we possess a foundational understanding of Sharingo's bike rental process, it's time to give structure to our model. In this session, we transition from unstructured notes to a more refined model by adding commands and constraints.

Watch Video - View Miro board frame

Part 4 - Finding Bounded Context Candidates

Discover the art of drawing dependencies between constraints, queries, and events in this fourth instalment. Our goal is to identify potential Bounded Contexts, allowing us to explore and validate design choices.

Watch Video - View Miro board frame

Part 5 - Exploring Failure Scenarios to Improve the Model

While everything may run smoothly in an ideal scenario, real-life systems must be capable of handling failures. In this session, we shift our focus to failure scenarios and explore how to incorporate them into our core model. In this part you will gain insights into the crucial aspect of designing robust software that can handle various failure situations.

Watch Video - View Miro board frame

Part 6 - Finishing the First Draft of the Design

We return to our original quest of identifying Bounded Context candidates. We examine the remaining parts of our EventStorm, completing the first draft of our comprehensive design. Here you will learn how our model evolves, bringing us closer to a refined and robust software system.

Watch Video - View Miro board frame

Part 7 - A Context Map of our Bounded Contexts

Gaining a fresh perspective on our designed Bounded Contexts, we explore the dependencies between them. By creating a Context Map, we uncover how these contexts interact and understand the dynamics at play. We analyse the events and commands at the boundaries of the Bounded Contexts, illuminating their relationships.

Watch Video - View Miro board frame

Part 8 - Refactoring towards Better Boundaries

Design is an iterative process that demands continual improvement. In this video, we embark on a journey of refactoring our model to establish more optimal boundaries. We restructure responsibilities, and fine-tune our design to ensure a well-defined and maintainable software system.

Watch Video - View Miro board frame

Part 9 - Example Mapping

In the final part of our video series, we unveil the power of Example Mapping. Demonstrated through the analysis of the 'bike availability' event, we delve deeper into the domain, enhancing our model's understanding. Example Mapping aids us in refining our rules, thereby fostering a more comprehensive and effective model.

Watch Video - View Miro board frame

Conclusion

From understanding the big picture to refining the model, addressing failure scenarios, and optimising design boundaries, the goal of this video series was to equip you with the tools and knowledge to tackle real-world challenges in software development.

Have comments or questions? Email us at contact@aardling.eu, we are happy to help.

Access the full Miro board

Book a Domain Discovery & Modelling workshop

Our team of experts will help you uncover insights from your domain complexity and create models that streamline your software development.