Domain model#
This page introduces core concepts in the Katalyst domain model and how they relate to each other.
Bases#
The most central concept in Katalyst is a base: a storage system that holds content (data) and supports a specific set of operations. Katalyst is compatible with several different types of backend: filesystems, key-value stores, relational databases, etc.
An operation is something a base lets you do with data: read, list, aggregate, write, and eventually query. Which operations a base supports, and what structural commitments those operations require, is the subject of progressive operations.
In addition to natively-supported operations for various backends, Katalyst provides two very useful kinds of operation.
- A check makes an assertion about content and reports a violation if the condition fails. See Checks.
- An inspector is the descriptive dual of a check: it gathers and reports the state of content. See Inspectors.

Raw vs collection-configured bases#
When configuring a base, the most important division is between raw content and collectionized content. A base configured only for raw content supports only a limited set of operations: checks, inspections and a small set of fixes. Most operations that require writes are not permitted, because the system would not have the context necessary to guarantee that the new content is correct.
When a base is configured with collections, it can guarantee correctness and consistency for more operations. Check and inspect operations can be more specific and context-aware. Far more write operations are available, since the system now has more context to enable correctness and consistency.
Within a given base, collection configs do not replace raw configs. Instead, they stack on top. Similarly, operations that require a collection stack on top of those available when the base was only configured for raw access to content.
Projects#
A project is the whole workspace Katalyst operates over: a configured root that includes one or more bases, plus some additional metadata.