What is DSM?
DSM (Digital Substrate Model) is a declarative language for defining your application's data model. Instead of writing repetitive boilerplate code, you describe what your data looks like, and Kibo generates the how.
Five Fundamental Notions
Namespace
Organize your model into logical modules. Maps directly to C++ namespaces and Python packages.
Concept
The core entity in your model. Like a class, but with built-in persistence, versioning, and serialization.
Key
Unique identifier for concept instances. Type-safe references between entities.
Document
Standalone data structures. Perfect for configuration, metadata, or transient data.
Attachment
Properties of concepts. Strongly typed with support for primitives, containers, and references.
Type System
DSM includes a complete type system:
- Primitives: bool, int8-64, uint8-64, float, double, string, blob
- Containers: vector, set, map, optional
- Structures: struct, tuple, enum
- References: key<Concept> for type-safe foreign keys