Shared terminology used by developers and domain experts.

Data becomes consistent after some delay.

Five principles for maintainable object-oriented design.

Contains core domain concepts and rules.

Layer protecting one model from another.

Reads immediately reflect completed writes.

Class should have one primary responsibility.

Handles data storage interactions.

Separates command operations from query operations.

Transaction spanning multiple systems.