ddd-crew / domain-message-flow-modelling

Design & visualise the flow of commands, events, and queries between your bounded contexts
Creative Commons Attribution Share Alike 4.0 International
366 stars 32 forks source link

Definition of system and context and when to use each one #5

Open mamhend-c opened 3 years ago

mamhend-c commented 3 years ago

We need to clarify when to use the system icon or the bounded context icon

yellowbrickc commented 3 years ago

Hi @mamhend-c

could you give some more details here?

philipschm1tt commented 2 years ago

This is a common question about the Domain Message Flow Modeling notation. You have symbols for both "System" and "Bounded Context". The two are related, since Bounded Contexts may also be systems/services. So people are wondering about the difference and why you even need both. For example, the example diagram with "Website" and "Sales" could only use the Sales Bounded Context – a system that has a website.

NTCoding commented 2 years ago

Hi @philipschm1tt,

In general, I would say purple cloud icon is something that contains business rules or domain logic which your business owns. The system icon is usually a 3rd party system which your business has no control over.

Regarding the UI, I normally use separate icons e.g. a picture of a phone or a computer screen. Most of the time, the mobile app and web UI doesn't belong to any (sub)domain and is something that exposes information and capabilities of multiple (sub)domains.

But logically some people do consider parts of the UI to belong to a particular model and therefore you could show the actor directly interacting with the purple cloud without a system or app in-between..

There aren't many rules with this techniques, as long as you can communicate your intention to the people who will be looking at it, then it's all good.

philipschm1tt commented 2 years ago

Thanks. That is pretty much what we figured, too.

Does this answer your question, @mamhend-c?

alexlawrence commented 1 year ago

@NTCoding Thanks for the explanation. What do you think about adding it to the README? Not as a strict rule but as an option. I had the same thoughts as @mamhend-c when reading it initially.

NTCoding commented 1 year ago

@alexlawrence it's a good clarification yeah. We should add it to the readme.

I'm hoping to spend some time on this repo addressing some of the comments that have been raised in various discussions. I'm hoping to do this in late July when my book is out of the way. If anyone wants to make any changes before then feel free.

alexlawrence commented 1 year ago

I'm hoping to do this in late July when my book is out of the way. If anyone wants to make any changes before then feel free.

Sure, if I find some time, I'll go ahead. Currently, I have the same time issue as you it seems :smile: