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:
Journal. Among these there are a number of concrete implementations. For example, there are Postgres implementations of all three:
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.
An object storage in which
The basic state storage protocol in which
Used within a Bounded Context (microservice) to store
Used to roundtrip translate between service/application state and storage state.