Lattice
The VLINGO XOOM platform toolset providing compute grid, actor caching, object spaces, cross-node cluster messaging, publish-subscribe, CQRS, and Event Sourcing support.
Feature Overview
The XOOM Lattice component provides tooling for reactive Domain-Driven Design projects that are highly concurrent. The tools of the component include compute grid, actor caching, spaces, cross-node cluster messaging, publish-subscribe, CQRS, and Event Sourcing support.
Feature | Description |
Understanding the Command-Query Responsibility Segregation pattern. | |
Supports three styles of persistence, including Object, Stateful, and Sourced. Command-Query Responsibility Segregation uses two models per Bounded Context (application or service), the Command Model and the Query Model, otherwise known as the Read Model and the Write Model, respectively. | |
Provides an API for distributed computations and data processing across multiple nodes in a cluster. Supports distributed parallel processing by sending computational execution requests to actors on any node in a cluster with the potential to receive results in return. | |
Provides an abstraction over Publish-Subscribe messaging exchanges or topics. This is a means to publish messages to exchanges/topics inside or outside your current application/service, and to subscribe to such messages. Provides translators from internal to external message types, and from external to internal message types. | |
Long-running processes that manage complex, coarse-grained, business transactions, must be managed through every step until completion. These tools assist in managing such processes whether by means of object persistence, stateful command models, or sourced with commands. | |
How to project state, Domain Events, and other Source types into a CQRS Query Model. | |
Use message-driven command routing to handlers that are responsible for modifying the domain model, which may be segregated as a Command Model. |
Types
The following types are defined in the XOOM Lattice component and commonly used with domain-driven designed services.
Type | Descriptio |
| A abstract type used to model a record of fact about an important business occurrence in the domain model |
| A abstract type used to model a record of fact about an important business occurrence in the domain model and that has an identity associated with it, which can be used for correlation |
| An abstract type used to create an Event Sourced entity that is backed by a persistent Journal |
| An abstract type used to model a record of an imperative directive to carry out a business operation |
| An abstract type used to create an Command Sourced entity |
| An abstract type used to model an entity that is backed by object-relational persistence |
| An abstract type used to model an entity that is backed by Key-Value persistence |
| An interface implemented by a component that orchestrates the steps necessary to complete a composite task |
| An interface implemented by a component that serves to project Command Model state onto the Query Model |
| An interface used to abstract the Command Model data projected onto the Query Model |
| An abstraction over Publish-Subscribe messaging exchanges and topics |
| A means of asynchronous message-driven command routing to handlers that are responsible for modifying the domain model |
These types are discussed in detail throughout the subsections of this chapter.
Last updated