Domain-driven design (DDD) is an approach to develop software for complex needs by connecting the implementation to an evolving model.

learn more… | top users | synonyms (1)

0
votes
0answers
14 views

How should an entity that abstracts an external service do its operations?

I'm creating a system using some DDD principles and I'm stuck with a problem. To give a bit more of context on what I'm trying to do, let me first describe what the system is about: The ideia is to ...
1
vote
3answers
145 views

How to best encapsulate features in software design?

I like domain driven design, and onion design. However I would really like my features to be encapsulated. If i check out some legacy code and I need to investigate some specific feature the best ...
-2
votes
1answer
51 views

Entity validation in DDD [on hold]

I am always curious how the validation is done for the following: Attribute/Property validation. Using preconditions/invariant/postcondition? for value object use self-encapsulation. Validating an ...
0
votes
3answers
68 views

DDD: Saving changes from UI to domain object

In many cases, there are different kind of forms in an application's user interface, and these forms are use to collect all the data - that is needed to update (or create of course) domain object ...
1
vote
2answers
53 views

Saga's and Query model transaction ordering

I have the following Ubiquitous language defined by our domain expert: A User can find UserGroups and add himself to it. A user can query a list of UserGroups where he is member of and remove himself ...
1
vote
2answers
132 views

Models, types, different views and meta data

We have a software which purpose is to be used to help users build their own applications. It has to be very loose coupled with the infrastructure: for example, I can imagine users running it on MySQL ...
5
votes
1answer
207 views

DDD CQRS - per-query and per-command authorization

Summary Should authorization in CQRS/DDD be implemented per-command/query or not? I am developing for the first time an online application using more or less strictly the DDD CQRS pattern. I bumped ...
0
votes
1answer
90 views

Communicating with third party API

I am working on an App which basically communicate with a third party API, it has no back-end. The front-end will be a SPA. Here is the overall scenario: The external API needs current user's Id to ...
2
votes
4answers
150 views

Design ideas - validation based on conditions outside of the domain

I am facing a very interesting problem here, and I'd like to see some design ideas from domain driven design perspective. To make it easier to express what I need I have following hypothetical ...
9
votes
4answers
1k views

Is Domain Entity violating Single Responsibility Principle?

Single responsibility ( reason to change ) of an entity should be to uniquely identify itself, in other words, its responsibility is to be findable. Eric Evan's DDD book, pg. 93: most basic ...
2
votes
3answers
227 views

Choosing an ubiquitous language across different bounded contexts

If my domain has several Bounded Contexts, but only ONE team will work on all contexts, should I develop an Ubiquitous language for each context? or should I have only one and force to into all ...
3
votes
2answers
277 views

Does DDD make sense for apps which mostly present data?

I'm responsible for designing a dashboard and data manipulation front-end for a sale transaction database and am not quite sure what type of architecture to use. The database is populated by an ...
2
votes
1answer
161 views

DDD: How to reconcile a BoundedContext with REST/WebService DTO's?

I'm just starting to learn about DDD, and I'm trying to understand how Bounded Contexts can be reconciled with client facing API's like REST/WebServices that use DTO's. For example: your system ...
4
votes
4answers
83 views

Domain Driven Design and Cross Domain interaction

I am a relative DDD newbie, but I am reading anything and everything I can get my hands on to boil out and distill my knowledge. I came across this DDD question, and one of the answers has me ...
3
votes
3answers
874 views

Domain driven design, can two aggregates have the same root?

For the purpose of separating different functionality into different classes, I have two following Aggregates: ActiveEmployee AssignTask () ReassignManager () Deactivate (string reason) ...
0
votes
1answer
50 views

Controlled access to list of entities vs get/set access in domain model

When designing a domain, either way of following approaches can be used to access list of child entities inside a parent entity. 1. Get/Set Following approach is straight forward and simple to ...
0
votes
0answers
28 views

Bounded Context naming and parts of speech

I keep coming up with the following Bounded Context names. They feel right when I just type them out in a text editor, but it's bothering me that they're not the same .. I'm going to use the word ...
15
votes
3answers
758 views

Conceptual mismatch between DDD Application Services and REST API

I'm trying to design an application that has a complex business domain and a requirement to support a REST API (not strictly REST, but resource-oriented). I have some trouble coming up with a way to ...
2
votes
1answer
71 views

DDD aggregate and component structure [closed]

What do you consider that is there relationship between DDD aggregate and architectural component? I think that it is quite reasoned that services, which are related to specific aggregate, defined a ...
2
votes
6answers
963 views

Domain Model, validation, and pushing errors to the model

Looking into DDD and something I noticed is that business logic should be in the model, otherwise you just have property bags. That said how do you handle pieces of validation that require a trip to ...
1
vote
1answer
85 views

DDD: Put logic in service or aggregate root?

Let's say we are building a document management system. One project has many documents. I decide to make projects as aggregate root. If the logic to add one document into project is complicated, I ...
0
votes
5answers
290 views

Handling DomainExceptions using REST endpoint

Suppose I'm doing some DDD. Now, I have a microservice reflecting a bounded context/a part of a bounded context. Now, suppose there is a REST endpoint: '/somedomainmodel/someaction' My API user is ...
4
votes
1answer
107 views

How to model Aggregate Roots for this music event system?

Let's say I am modeling a music event system. I have: music events listing events (the items in a lineup) - a listing event has acts (the artists playing in an item in the lineup - these can be ...
1
vote
1answer
92 views

Are there more or less straightforward guidelines for adopting one or another approach to reporting in DDD? [closed]

Vernon and Millett describe several patterns of getting data for ui (reporting in general) needs. Though some pros and cons of each approach are discussed, I could not get a robust understanding of ...
3
votes
1answer
182 views

Integration between services in a SOA

Assume we have a Bounded Context for Inventory (InventoryBC) and another one for Shipments (ShipmentsBC). These 2 BCs need to communicate together. They are hosted on 2 different services on different ...
0
votes
3answers
110 views

DDD Request Validation Handling

I stuck somewhere that I can't find a solution! There are plenty of validation questions here, but as far as I see, most of them were asking about entity validation. But what about request validation? ...
2
votes
2answers
164 views

Domain driven design with eventual consistency

My domain aggregate is struggling with simple business logic so I feel like I have modeled it incorrectly. The architecture I have right now uses domain driven design with event sourcing. The domain ...
4
votes
4answers
916 views

Justification for bidirectional relationship

I typically try and avoid bidirectional relationships at all costs. Recently I've been trying to follow a more domain centric design philosophy and I'm looking for advice in the best way to solve a ...
1
vote
3answers
78 views

Event Sourcing and cross-context aggregate

I had this idea of different write models being used in different bounded contexts, but both being the same aggregate instance (the same events). For example consider a User aggregate that is used ...
3
votes
2answers
385 views

Domain Driven Design - designing Aggregate Roots

Imagine you're designing an application for organizing Workshops. Workshop itself is quite complicated - it acts as a state machine with multiple possible states and transitions between them. We're ...
0
votes
2answers
3k views

Domain Services vs. Factories vs. Aggregate Roots

After dealing with DDD for months now, I'm still confused about the general purposes of domain services, factories and aggregate roots in relation to each other, e.g. where they overlap in their ...
0
votes
1answer
68 views

What is a Collection of Aggregates Referred to in Domain Driven Design?

E.g. in a domain model with two aggregate roots: book author Is there a specific term that refers to a collection of aggregates of the same root type (e.g. a collection of books)? In Confusion ...
0
votes
3answers
197 views

in DDD, should repositories expose an entity or domain objects?

As I understand it, in DDD, it is appropriate to use a repository pattern with an aggregate root. My question is, should I return the data as an entity or domain objects/DTO? Maybe some code will ...
13
votes
1answer
7k views

Why database as queue so bad? [closed]

I've just read this article, and I'm confused. Let's imagine 1 webapp and 1 distinct application acting as "worker", both sharing the same database. Oh, I said "sharing"..but what does the article ...
1
vote
3answers
137 views

When a class represents a property that might be invalid, how should the validation be done?

I have a Product class which has among others an attribute Ean13 that encapsulates an EAN13 code. Here is a prototype of the Product class: @Entity @Table(name = "tb_produtos") public class Product ...
2
votes
2answers
104 views

Domain driven design - Entity is updateable in certain circumstances

Here is my business rule: Anyone (anonymous users) can make an Application (as in to apply for something). Applications can be updated until they are reviewed and approved by an officer. Approved ...
6
votes
4answers
260 views

Design pattern for “operation on object allowed, only if object is in certain state”

For example: Only job applications that are not yet in review or approved, can be updated. In other words, a person can update his job appliance form until HR starts reviewing it, or it's already ...
2
votes
3answers
141 views

When using DDD and CRQS, should be exactly one event per command?

I am looking for a way to design a ddd application with convention over configuration. Say an aggregate "Client" has a command defined "FillProfile". It will logically raise an event "ProfileFilled". ...
4
votes
3answers
192 views

Microservices architecture and bounded contexts

In the past few days I've been reading some things about microservices architecture. I didn't get the whole point yet, since I'm just starting with this, but there's one point which caught my ...
6
votes
1answer
169 views

Which is the preferable design for my Gateway? [closed]

I'm writing a Gateway class that extracts information from a HTML document. One of the responsibilities of the class is to traverse a table in the document and extract data from its rows. I'm trying ...
44
votes
3answers
11k views

Rich Domain Models — how, exactly, does behavior fit in?

In the debate of Rich vs. Anemic domain models, the internet is full of philosophical advice but short on authoritative examples. The objective of this question is to find definitive guidelines and ...
5
votes
3answers
101 views

Confusion about the meaning of the word aggregate in domain driven design

In a discussion about domain driven design I have learned the different people seem to think of different things when using the word aggregate. The main difficulty is that some people use the word ...
10
votes
2answers
165 views

Anemic domain models and domain services injection

The anemic domain model is described as an anti-pattern in domain driven design by Martin Fowler. To have business logic on the domain models often domain services are used. But injecting domain ...
7
votes
1answer
188 views

How to document a Ubiquitous Language?

Our company is in the process of converting a lot of manual business processes (and the associated institutional knowledge) into new enterprise software. The project is going really well, but as we ...
17
votes
3answers
7k views

What is Domain Driven Development in practical terms? [closed]

I heard about Domain Driven Development from a developer in the area. He talked it up like it was just about the silver bullet to changing requirements. I read the wiki. Still not too clear. What ...
11
votes
2answers
456 views

What question is answered by DDD? [duplicate]

What is the problem that is solved by Domain Driven Design? I understand what Object Oriented Programming brought and see the issues it addressed and how, and in what aspect/scenaria, it made the ...
6
votes
4answers
238 views

Lookup Tables: Are they a leak in the domain model?

You are building a system that keeps track of Companies. Those companies have Contacts. Those contacts are often specialists that only answer certain types of questions, such as Billing/Payment, ...
2
votes
1answer
118 views

Enterprise Architecture: Where to put persistence/dbContext management? [closed]

I'm working on architecting a somewhat enterprise-level solution and have a question about how to best handle the persistence details. My overall setup is that there's a core set of business ...
1
vote
3answers
156 views

CQRS and DDD terminology

Since CQRS and DDD do not imply one another I was curious what terms belong to DDD and what terms belong to CQRS. Because the two concepts are so much used together in the literature I usually mix ...
2
votes
1answer
111 views

Can “REST without PUT” support optimistic locking using ETags?

Rest without PUT models immutable, append-only (event-sourced) state changes by favouring POST-ing new reified change resources over PUT-ing updates to original. Example: making and then changing a ...