We start a new topic for our live stream themes: Domain-driven Design. The book is 20 years old this week so what better time to start off! Our last topic covered everything around Clean Architecture, if you want to check them out you can go through episodes 1 to 4.
This Thursday we explore how Domain-driven Design can help you on a tactical, strategical and company level. Live discussions, Q&A and online book review.
Call for feedback - How are you liking the chat participation on Linkedin? Is the Event for each week easy to find?
👇 Sign up on the LinkedIn event to have it easily pop into your calendar. It’s recorded, and also available on YouTube.
Agenda for the Live Stream
Book Suggestions
Overview of DDD, checking survey response
Book Review of Domain Driven Microservices on AWS in Practice
Q&A, Live Discussion
Domain-Driven Design Articles so far
No worries if you missed it, here’s last week’s recap
Benefits and Advantages of Event Modeling
💡 Clean architecture is not something you do as a process, but rather an output of refactoring and identifying and addressing inappropriate coupling between application, domain, and infrastructure concerns.
🚪 Separating layers in clean architecture enables the ability to have different types of UIs, like mobile and web, with the same API or backend, providing versatility and adaptability to project requirements.
🌐 Event modeling helps in creating vertical slices of a project, allowing developers to determine the minimum development required in other layers to showcase a specific layer, improving efficiency in the development process.
💡 Event modeling allows for a clear representation of the timeline of events, with events on the left side representing the start of a process and events on the right side representing important milestones or actions.
🤔 Event modeling and event sourcing are considered the most natural way of building systems, especially for data products. Not having an event model in place can pose significant challenges, especially when the data domain has natural time-based properties.
⏰ Event modeling with a timeline component provides a more comprehensive understanding of the order and context of application flows, surpassing the limitations of UML and sequence diagrams. Modeling complex systems becomes easier with event modeling because the timeline is the key component to the actual data flow of the system.
🌍 Event modeling makes the distinction between commands and read models explicit and visual, providing a clear separation of state-changing operations and operations that retrieve or perceive the —often stale— state of the system.
Importance of Collaboration and Team Involvement
💡 The best way to develop and improve EM/CA understanding is to involve the entire team in discussions about the domain and address the specific pain points they experience.
🚀 Collaboration is crucial in event modeling, as it enables different stakeholders to come together and discuss the impact of design changes on various aspects such as backend architecture and mobile application structure. It is devoid of technical jargon for this very purpose, to be as inclusive as possible. Getting active and broad participation in event storming / modeling is more important than getting precisely correct events initially.
📝 Event modeling allows for collaboration and input from various stakeholders, including developers, DBAs, POs, and UX designers, to capture the patterns of data flow and trigger actions in an application.
#4 Recap - Questions Answered
Q: “What are the best ways to develop Clean Architecture across the team?“
🎥 [12:41] - Great question, thank you Saddam!
Q: “When can we go with the clean architecture ? Is it bound to any use case ? 2) can we customize this theory of clean architecture for api related projects ?“
🎥 [20:29] - Certainly useful on a problem with business value. Though it’s not an end-goal. Consult with your team. Don’t force it.
Q: “What performance benefits does event modeling brings with clean architecture?“
🎥 [23:52] - Performance is an output of good architecture. While not giving you speed per se, it will certainly improve the cadence of your team!
Q: “What are the benefits of event modeling over storming?Do we event model only the complicated parts of the system?“
🎥 [1:07:12] - Storming vs modeling: former is about domain exploration (DDD), the latter is about planning and managing the timeline of a project and data. Re: complicated parts—you want the simple parts as well because you want to discover if there are any gaps in the model. These show you risk areas.