three stages of server backend development Ui+database's two-tier architecture, this database-oriented architecture (table module above) has no flexibility. Ui+service+database's multi-layered SOA architecture, this service + table model architecture makes services more cyst-prone, difficult to maintain, and poorly scaled, see here for discussion or spring
The biggest failure of Web apps.
Ddd+soa's event-driven CQRS read-write separation architecture, dealing with complex business logic, replaces data-table models with aggregation models, and replaces concatenated message-driven with concurrent event-driven. Truly achieve flexible expansion with business entities as the core.
DDD is revolutionary in that domain models accurately reflect the business language, whereas transactional programming models such as traditional Java EE or spring+hibernate only care about data, and these data objects have no business methods other than simple setter/getter methods, Is likened to a blood loss model, so where is the model of the domain model that has a business approach to congestion.
The biggest benefit of DDD is that the first step in reaching a requirement is to consider a domain model rather than cutting it into data and behavior, then data is implemented using a database, behavior is implemented with services, and the first limb of the demand is separated. DDD lets you first consider the business language, not the data. The emphasis differs in that programming world view differs.
DDD is one of the most effective ways to solve complex and large-scale software, and has become the mainstream in foreign countries. DDD sees many reasons for the complexity of software, and it is impossible to avoid these complexities and to control complex problems. And a good domain model is the key to control complex problems. The value of the domain model lies in providing a common language that enables domain experts and software technicians to connect and communicate without ambiguity.
DDD in the software production process to locate the following diagram, DDD landed implementation can not be separated from in-memory cache, CQRS, DCI, EDA or event source a few major related fields.