ddd-crew / ddd-starter-modelling-process Goto Github PK
View Code? Open in Web Editor NEWIf you're new to DDD and not sure where to start, this process will guide you step-by-step
License: Creative Commons Attribution Share Alike 4.0 International
If you're new to DDD and not sure where to start, this process will guide you step-by-step
License: Creative Commons Attribution Share Alike 4.0 International
Hey all.
I would like to suggest switching the order of Strategize and Connect to have Strategize first.
I'm recommending this because I've often found that how we connect our system, and even the patterns and technical aspects we use when connecting, need to support how we view the subdomains of systems in question. For example, if we have a core domain with some connections to other non-core systems, selecting a specific pattern of integration over another may allow the core domain to evolve freely.
For an example from my current domain, assume we have a core service A that is responsible for retail order management from a logistics point of view. We (as a system) need to price the draft shipment and also see whether a carrier can ship the shipment. The pricing is a supportive subdomain and the responsibility of service B. Ignoring other subdomains, let's compare these two ways of designing the communications:
Choosing option 1 means that A is now free to evolve its behaviour (not just communication contract) with the minimal possibility to require changes to B for the system to work.
Option 2 however is the opposite. Our core domain may need to evolve in such a way that our supportive one can't support requiring potentially big changes.
To not leave this in theoretical space, one example of change in behaviour is introducing two-leg movements (using two carriers to deliver a package: one collects and takes to a depot and another from the depot to the recipient). Option 1 only needs internal changes (or introducing another sub-domain), and service B can still quote normally without knowing what depots are. With option 2 however, now suddenly we need coordinated changes across our system.
There is some ambiguity and inconsistency in Align & understand from the picture toward the whirhpool and the text. I can start fixing it, but need access to the O.G. picture. Where was that again?
In Section 3 "Decompose", the link "carving up your event storm" leads to a 404
Hi DDD Crew!
Where would be the best place to put the reference to the DDD Kata used at SAP?
https://github.com/SAP/curated-resources-for-domain-driven-design/blob/main/ddd-kata.md
Thank you!
Best Regards, Philipp
In Section 6 "Organise", the link "fully organise themselves" leads to a 404
Hi Crew
I was thinking about iteratively using model processing.
I think is better to add when to do it also if we are in an agile context.
what do you think?
PS: I can help if you're open to it.
Hello everyone, I'm Javiera Laso and I was one of the speakers at the ddd eu 2022. Talking with @yellowbrickc she ask us to contribute in some way to this repository, but I'm not sure how to do it yet. Here are my slides: How to start with ddd when you have a monolith, I haven't written any post related to this talk (because I just finished the presentation about a month before the conference), but there are some interesting things that can be explained in detail.
So my question is, how can I help?
Hi,
I will be very grateful if you could share the source of the images to translate them to Spanish. I asked you something similar in ddd-crew/welcome-to-ddd#3
Thanks in advance and regards
Do you have the source of the images/diagrams in the article? I'd like to contribute translation but it seems no source format of the image can be edited easily.
Hi everyone,
This repo is the starting point for all the other "detailed descriptions" in the other repos but we don't reference them yet.
What do you think, should we add a link to every chapter referencing the corresponding repo (if exists)?
Hey everyone,
I watched the talk mentioned in the issue title.
My first thought after this was: very helpful in terms of understanding the steps of the starter modelling process.
How do you think about adding some kind of reference to this talk in the readme:
https://www.youtube.com/watch?v=ekMPm78KFj0
The introduction into the modellling process starts here:
https://youtu.be/ekMPm78KFj0?t=1820
Best,
Christian
Hi there, if it can be helpful I can translate the image into my native language (Italian) at this location --> ddd-starter-modelling-process/tree/master/translations
If so, just let me know where I can find the original drawing or which tool you guys used.
Cheers
Disclaimer: I am a junior (1.5 y.o.e) software engineer, and I apologize if my questions seem silly.
The starter modelling process is very nice as it provides a clear path to go from nothing to a well-defined system. That being said, I struggle with the last (and crucial) step of going from the bounded context definition to actual code.
The Aggregate Design Canvas helps in defining the aggregates, but it doesn't help me in first finding what the appropriate aggregates are in the first place.
I understand that Design-Level EventStorming and Event Modeling are techniques that can be used to bridge that gap. However, as a first-timer, going from the theory to the practice is rather daunting, and I think that having concrete examples of the processes involved (Bounded context definition --> Event Modeling / other steps --> Aggregates definition) could be very helpful.
By any chance, do you know of existing resources / workshop recordings that showcase the actual implementation of these processes ? I'm really not looking for resources that explain DDD concepts, but rather resources that showcase the application of the DDD concepts all the way down to being able to write code.
Thanks in advance !
I love the new two refreshed diagrams
One thing I wonder about is where the "organize" part went? There is a step "categorize" no.
Organize is still part of the written description in https://github.com/ddd-crew/ddd-starter-modelling-process/blob/master/README.md, though.
I personally love the organize part because it focusses on bounded context relationships and looks at resulting team relationships.
Hi,
Sendt this as a comment to #1, but after it was merged. Try here instead.
Great stuff this, even though I'm a bit worried that people with copy it whole-cloth and end up over-designing. Let's hope not.
I have a couple of comments:
Step 1: You mention user need in the process illustration, but can't see it mentioned in the description. I think User Story Mapping would fit perfectly there, done in collaboration with biz and UX. Add a couple of sentences on it and link to https://www.jpattonassociates.com/user-story-mapping/
Step 2: I think the user perspective is also often missed here, and find that user story mapping is also beneficial here to make all agree on what we would like to support when (slices in the story map).
Step 4: Simon Brown has some extension to his C4 model which I have used and like, Dynamic Diagram (https://c4model.com/#SupplementaryDiagrams)
If you haven't seen it, also like Andrew Hamel-Law's post on starting with DDD: https://www.thoughtworks.com/insights/blog/domain-driven-design-neednt-be-hard-heres-how-start
That's it. Thank you for including Business Capability Modelling.
Do you have any best practices / ressources to integrate UI and UX aspects in the DDD modelling process.
The previous step discovered subdomains.
How do those subdomains relate to the bounded contexts?
ddd-starter-modelling-process/README.md
Line 307 in dc70a3f
I was going through the process again, and when we get to connect we start talking about subdomains, and then doing domain message flow modelling we use Bounded Context but never about distilling/decomposing bounded contexts. Only decompose subdomains.
Then at Organise we introduce context mapping and teams. But no explicit steps in distilling bounded context right?
Should we add that during decompose? Make it more clear? Alberto in his book talks about decompose/distill into emerging bounded context. What do you think?
The section is about 'Connect the sub-domains into a loosely-coupled architecture which fulfills end-to-end business use-cases.'
However, the diagram shows bounded contexts, which aren't defined until the next section.
ddd-starter-modelling-process/README.md
Line 260 in dc70a3f
The current DDD starter process describes going from the outside-in. From strategic to tactical. A lot of people are not in the position to do so or don't have the resources/capabilities to do so.
I want to start to describe that process of how you would do that from the inside-out perspective.
What do you think?
Hello Everyone!
I am working on the new website for virtualDDD and want to use an imported to make it into nice github readme post to include it as resource on the website to share.
However there are a few "standardizing" problems in the text.
For it to import the resources folder should be renamed to _resources and all the image should use a like:
instead of:
![DDD Starter Modelling Process](resources/ddd-starter-modelling-process-colored.png
Would you be okey with me adjusting that :)?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.