The reactive CQRS and Event Sourcing storage and projection with vlingo/symbio.

What Is Symbio?

The idea behind the name "symbio" is that there is a symbiotic relationship between domain models and persistence, and persistence and domain models. They depend on each other, but in a way that neither "life form" may be entirely conscious of the other.

The vlingo/symbio parent tool is a set of protocols and default in-memory implementations. The protocols are usable by concrete implementations. The in-memory implementations are useful for testing.

There are three primary kinds of storage mechanism protocols available: ObjectStore, StateStore, and Journal. Among these there are a number of concrete implementations. For example, there are Postgres implementations of all three: ObjectStore, StateStore, and Journal.

Each storage type is discussed in the following subsections. Additionally there is a separate useful discussion about Adapters, which are used to translate between application or service state and persistent state.

Object Storage

State Storage

Journal Storage