Overview

== Approach to complex software robust (the property of software to function reliably even under unfavorable conditions) flexible (the software’s ability to be easily adapted to changing requirements) and transparent modeling

– one of the basic theories for microservices architectures
– The focus of the software design is on technicality + technical logic.
– Design of complex domain-oriented contexts is based on a model of the application domain (== domain model)
– not worthwhile with CRUD ( Create Read Update Delete ) systems

Components of a domain

ddd


Modules: technical components of the domain
Entities: Objects with variable or ambiguous properties defined by their unique identity
Professional events: Special objects register domain-relevant events and make them visible to other domain parts
Service objects: business relevant functionalities that are important for several objects in the domain
Value objects: Objects that are uniquely defined by their properties and typically remain unchangeable
Associations: Relationships between objects of the model.
Aggregates: Unit of objects and their relations
Factories: For complex scenarios, different production patterns (mostly factory or builder patterns) can be used
Repositories: clean separation of domain and data layer for system abstraction

Techniques

methoden ddd
Techniques and approaches for implementing the domain model

Microservices

== Architecture pattern of information technology, in which complex application software is composed of independent processes that communicate with each other using language-independent programming interfaces
– Services are largely decoupled and perform small tasks

Microservices Core Features

Independent deployability (development teams work within their own deployment pipeline (Continuous Integration/Continuous Development)
Independent technology stacks (technology decision (programming language, frameworks, database, operating system…) is up to the respective development team)
Decentralized data management (each service manages its own data necessary for the functional scope)
Loose coupling (microservices are executed separately in their own processes and are coupled together via the network)
Bounded Context (functional scope of an application is cut into functional delimitable contexts (Bounded Context)