DDD (Domain-Driven-Design) is basically an architectural style that is based on Object-Oriented Analysis Design approaches and principles. In this approach, the business domain is modeled carefully in software, without regard to how the system actually works. By interconnecting related components of the software system into a continuously evolving system, it facilitates the development of complex systems. There are three fundamental principles underlying it as shown below:
- Concentrate on the core domain and domain logic.
- Analyze domain models to find complex designs.
- Engage in regular collaboration with the domain experts to improve the application model and address emerging domain issues.