Entity, Context, and IUnitOfWork

Entity In the Condense Framework, an Entity is a persisted atomic snapshot of your business information. In code it is represented by a plain C# class definition, decorated with the [Condense.Core.Entity] attribute. The creation of an entity (or new revision) is an event, which may trigger lamdba methods in your domain. Identifiers Entity identifiers are automatically generated and managed by the framework. The identifier is what makes the entity unique - in addition to it’s type.


Scope of problem Unlike the simple examples, the Condense framework is aimed at more complex domain models that change over time and may contain multiple code-versions of business logic. The event-based nature also means that from a given perspective, eg a user interface, a portion of the domain is irrelevant or out of scope. For example; Additional processing that continues after a relevant result is achieved. After a successful payment in a web application, the various pieces of the shipment process are orchestrated for back office systems.

Lambda Execution

Lambda Definition In the Condense framework, a lambda is a method executed in response to one or more events. This method is a declared in a domain assembly, and marked with the Condense.Core.Lambda attribute. Further information can be declared using the properties on this attribute, as well as per-input attributes on parameters (Condense.Core.Param). This rather long document describes the steps that the Condense runtime performs. It describes when your method is executed, how it fills the parameters, and importantly how you can control this.