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.
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.
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.