elips/docs
Chapter XI · internals

Architecture — the whole stack

Every ELIPS feature lives on exactly one of five layers. Knowing which one is the difference between a one-line patch and a refactor.

surfacesPython · modernEngine · ArenaPython · coreopen · VaultC++23 SDKelips::openelips CLIops & replElipsInstancelifecycle · config · WAL · vault registryVaultrecords · planner · index · metadataquery pathseek / scan / hybridtext pathplace_documentpersistenceWAL · segmentslockingflock RO / RW← composition root
SDKs → ElipsInstance → Vault → planner + ports (index/metadata/text/GPU) → storage (WAL + segments).

From docs/architecture/system-overview.md: each layer talks down to the next via abstract ports. Nothing in the planner depends on a concrete index. Nothing in the index depends on a concrete storage layout.

IndexPortbuild · upsert · search · eraseHNSW (graph)M · ef_construction · ef_searchExact (flat)brute force · deterministicGPU familybrute · ivf · pq · cagralog-ish recall@k100% recall, O(N) per querybatched, async, GpuPort-boundone contract — the planner doesn't care which
Ports & adapters: the planner sees IndexPort, MetadataIndex, TextEmbedderPort, GpuPort — not concrete classes.