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.


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.


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.


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


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.


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.


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.


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


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