This document provides an introduction and overview of domain driven design (DDD). It defines key DDD concepts like domain, ubiquitous language, bounded context, and domain model. It explains how to apply DDD patterns like layered architecture, entity model, value model, aggregate model, and service model. It also discusses how to unify domain models and implement DDD in practice using techniques like ubiquitous language, bounded contexts, and entity/value/aggregate models. The document aims to help readers understand the problem DDD solves, core DDD principles and patterns, and how to apply DDD on real projects.