Condense Light Condense.Light Condense Light is a runtime that is designed to be embedded in your web or desktop application. Everything in this document is based on an early preview of the Condense runtime. Prerequisites The Preview is available on Nuget. Condense.Core: 0.9.1.0, or Install-Package Condense.Core Condense.Light: 0.9.1.0, or Install-Package Condense.Light Couchbase Server (recommended): http://couchbase.com. This can be installed locally, or remotely (eg: EC2 - with AMIs available).
Condense In Brief Condense is a reliable event driven architecture implementation, leveraging a durable persistence store, with flexible integration options. You provide an in-code description of your business data model and process in a regular .Net assembly project, referred to as your business domain. This domain assembly can then be hosted by a Runtime which fulfills the promises of the framework. This could be the in-process Condense Light framework, the SaaS Condense Cloud offering, or a private cluster.
Everything in this document is based on an early preview of the Condense runtime. This preview is not publicly available. Your Project Checklist Reference Condense.Core. Create your entities as POCO object. Decorate them with the Entity attribute. Create your lambda methods, either on domain objects, or on service classes. Decorate these with the Lambda attribute. If on a service type, be sure to set the ContextType, you generally care that inputs have some sort of shared lineage.
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 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.