Novolis Docs
novolis-storage / design.md

Design

dotnetstoragesqlitenovolis

The longer proposed architecture is documented in `docs/spec/new-storage-library.md`.

Packages

PackageRole
Novolis.Storage.AbstractionsIHasId, IHasName, IRepository<T>, DI registration helpers
Novolis.Storage.AzureBlobDirect typed JSON blob containers keyed by IHasName.Name; no Query or Index dependency
Novolis.Storage.QueryImmutable finite query intent, capability discovery, and continuation
Novolis.Storage.IndexingExperimental revision-aware key encoding and query planning
Novolis.Storage.AzureCombinedStoragePreview aggregate storage over Azure Tables and Blobs
Novolis.Storage.AzureTablesAzure Table rows; Id is the row key and queries are paged OData filters
Novolis.Storage.JsonOne JSON file per entity under a type folder
Novolis.Storage.SqliteSQLite tables created from entity shape

Entity model

Repository entities implement IHasId with a Guid Id; typed Azure Blob values implement IHasName with a stable blob name. Display names for folders/tables come from the provider's type naming conventions.

Trade-offs

JSON storage is simple and portable; SQLite adds querying and relational constraints with generated SQL from property reflection.