This is the reference manual for all topics of the Business framework.

It is best to have a good understanding of the essential notions before going further into this reference manual.

Entities

An entity is used to represent a domain concept distinguished by an identity. This identity must remain the same through the whole entity lifecycle.

Value Objects

A value object is used to describe or compute some characteristic of a domain concept. It does not have an identity.

Aggregates

An aggregate is a cluster of cohesive entities and value objects that is treated as a single unit. Aggregates have clear boundaries and are loosely coupled to each other.

Factories

A factory is responsible for creating a whole, internally consistent aggregate when it is too complicated to do it in a constructor.

Repositories

A repository is responsible for consistently storing and retrieving a whole aggregate. It has a simple collection-like global interface and optionally domain-specific methods.

Services

A service is a stateless object that implements domain, applicative or infrastructure logic.

Domain events

A domain event is used to represent something that happened in the domain. It happened in the past and is of interest to the business.

Policies

A policy is used to encapsulate a varying business rule or process in a separate object. Multiple versions of the policy object represent different ways the process can be done.

Assemblers

An assembler is an interface object responsible for mapping one or more aggregate(s) to a Data Transfer Object (DTO) and back.

Finders

A finder encapsulates interface-specific data queries that have no domain meaning. It only has read-only operations.