How KoutenDB Differs From Typical NoSQL
How KoutenDB Differs From Typical NoSQL
KoutenDB is a NoSQL/document database prototype, but it is not trying to be a MongoDB-compatible document store, an aggregation engine, or a generic secondary-index database.
The important distinction is placement. In KoutenDB, the ring is not merely a
collection label. It is a coordinate used by the read path, the retrieval
planner, dump/import boundaries, authorization boundaries, and future sync /
recovery workflows.
Expected Mental Model
In many document databases, the common model is:
insert flexible documents first
add filters, indexes, and aggregation later
KoutenDB’s model is different:
place documents into meaningful rings first
use ring locality to avoid reading unrelated data later
Documents remain flexible. Different records in the same ring may have different JSON shapes. The stricter part is not schema; it is placement.
What KoutenDB Does Not Try To Replace
KoutenDB is not currently a replacement for:
- MongoDB aggregation pipelines;
- SQL joins and relational constraints;
- arbitrary secondary-index planning over many fields;
- global strongly consistent OLTP ledgers;
- columnar analytics engines;
- streaming log engines.
Those systems are strong when the application needs broad ad-hoc analysis, strict relational constraints, or large cross-corpus scans.
What KoutenDB Optimizes Instead
KoutenDB is designed for systems where most reads can start from a meaningful scope:
- tenant, user, account, or organization;
- region, language, or market;
- product, category, or content type;
- date or lifecycle bucket;
- application state scope;
- AI/RAG corpus partition;
- imported field mapped into a ring.
When this scope is explicit, KoutenDB can reduce:
- records scanned;
- vectors considered;
- bytes transferred;
- payloads projected into application code;
- chunks passed to rerankers or LLM prompts;
- memory pressure from unrelated candidates.
Collection Versus Ring
| Topic | Typical document collection | KoutenDB ring |
|---|---|---|
| Main role | Store documents of a broad type | Place documents in a meaningful locality |
| Query path | Filter/index after choosing a collection | Choose a ring or hierarchy before scanning |
| Schema | Flexible documents | Flexible documents |
| Performance tuning | Indexes, query shapes, aggregation design | Ring design, hierarchy, retrieval profile, projection |
| Isolation | Database/collection/user policy | Galaxy, ring prefix, auth policy, recovery/sync boundary |
| AI/RAG fit | Often needs extra vector/index layer | Ring placement is part of retrieval reduction |
Insert Philosophy
KoutenDB does not need a heavy classifier on every insert.
Good ring placement can come from:
- application routing, such as
tenant/acme/orders; - user or operator choice, such as
docs/japan; - import rules, such as
--ring-field=tenant --ring-prefix=tenant/; - simple domain conventions, such as
products/electronics/2026; - later offline cleanup through halo capture or warp jobs.
This keeps writes light. The database stores enough coordinate information to make later reads cheaper.
Query Philosophy
KoutenDB is strongest when the caller can say where to look.
Examples:
discard db.put("""{"title":"Refund guide"}""", ring = "docs/japan")
for item in db.listByRing("docs/japan"):
echo item.payload
let hits = db.retrieve(@[1.0'f32, 0.0'f32], ring = "docs/japan", budget = 8)
If the caller does not know the right ring, it should inspect the atlas or ring descriptions first:
echo db.atlas()
This is closer to reading schema and table statistics before writing a SQL query than to scanning every collection and filtering afterward.
Tradeoffs
KoutenDB is a poor fit when:
- the application cannot express meaningful rings;
- most queries require arbitrary cross-ring aggregation;
- every field needs independent secondary-index lookup;
- strict global transaction order is mandatory;
- the main workload is full-corpus analytics.
KoutenDB is a good fit when:
- records naturally belong to tenants, users, topics, regions, dates, or state scopes;
- overfetching and application-side filtering are expensive;
- AI/RAG retrieval should avoid unrelated chunks before reranking or prompting;
- flexible documents are useful, but read scope is predictable;
- recovery, sync, dump, import, and authorization boundaries should follow the same data placement model.
Short Positioning
Use this wording when describing KoutenDB:
KoutenDB is a placement-aware NoSQL/document/vector store. It keeps NoSQL-style
document flexibility, but expects meaningful ring placement so reads can avoid
unrelated working sets.
Avoid this wording:
KoutenDB is a MongoDB-compatible replacement.
That is not the design goal.