Ecosystem Architecture & Dependency Graph
This chapter maps the full Samyama ecosystem: repositories, modules, features, and knowledge graph projects — with dependency graphs showing how everything connects.
1. Repository Map
Verified against live inventory (53 repos in the
samyama-aiGitHub org; GiteaSamyama.aiorg) and the working checkouts ingraph_ws. Last reconciled 2026-08-19.
Hosting topology
Three hosts, and several repos live on more than one:
- GitHub
samyama-ai— public OSS engine + public KG repos (53 repos). - Gitea
git.samyama.ai/Samyama.ai— all private repos, plus mirrors of the public ones. - GitHub
VaidhyaMegha— the web/product front ends.
samyama-graph is triple-hosted (GitHub origin, Gitea, GitLab). Most KG repos are
dual-hosted: Gitea (gitea remote) + GitHub (origin, public).
graph LR
subgraph Engine ["Engine"]
SG["samyama-graph<br/>(OSS · GitHub+Gitea+GitLab)"]
SGE["samyama-graph-enterprise<br/>(private · Gitea)"]
end
subgraph Support ["Docs · Research · Benchmarks (private · Gitea)"]
SC["samyama-cloud<br/>(book, wiki, deploy)"]
SR["samyama-research<br/>(papers)"]
CB["samyama-graph-<br/>competitor-benchmarks<br/>(LDBC + federation results)"]
SS["samyama-graph-solutions"]
end
subgraph KGs ["~25 KG repos (Gitea + GitHub public)"]
BIO["Biomedical: pubmed-kg,<br/>clinicaltrials-kg, pathways-kg,<br/>druginteractions-kg, surveillance-kg,<br/>health-determinants-kg,<br/>health-systems-kg,<br/>breast-cancer-pathway-kg,<br/>mental_health-kg"]
SEC["Security / IT-ops: mitre-attack-kg,<br/>nvd-cve-kg, d3fend-kg, itbench-kg,<br/>lea-cybercrime, devops-kg"]
DOM["Industrial / finance / other: assetops-kg,<br/>bank-model-risk-kg, powergrid-kg,<br/>telecom-kg, edge-ai-kg,<br/>legal-judgments-graph-kg,<br/>wildfire-evac-kg, regulatory-affairs-kg"]
DEMO["Demo / sport / media: cricket-kg,<br/>imdb-kg, football-kg, edtech-kg"]
end
subgraph Web ["Front ends (GitHub · VaidhyaMegha)"]
SI["samyama-insight<br/>(React + book at /book)"]
SGW["samyama-graph-web"]
end
subgraph AIApps ["AI apps"]
CHAT["samyama-chat<br/>(FastAPI GraphRAG chat UI)"]
GRR["graphrag-rs<br/>(LLM-powered KG builder<br/>+ MCP server)"]
end
SG -->|"local path remote 'sg' → sync"| SGE
SG -->|"Python SDK"| BIO
SG -->|"Python SDK"| SEC
SG -->|"Python SDK"| DOM
SG -->|"Python SDK"| DEMO
SG -->|"TS SDK"| SI
SG --> SGW
SG -->|"embedded (cargo path+version dep)"| GRR
SG -->|"HTTP :8080"| CHAT
BIO -->|".sgsnap → federation"| CB
SG -->|"benchmarked by"| CB
SGE -->|"deploy scripts"| SC
SC -->|"mdBook build → public/book-static/"| SI
SR -.->|"published PDFs"| SI
CB -.->|"results feed papers"| SR
style SG fill:#4a9eff,stroke:#333,color:#fff
style SGE fill:#ff6b6b,stroke:#333,color:#fff
style SI fill:#51cf66,stroke:#333,color:#fff
style SGW fill:#51cf66,stroke:#333,color:#fff
style SC fill:#ffd43b,stroke:#333
style SR fill:#ffd43b,stroke:#333
style CB fill:#ff922b,stroke:#333,color:#fff
style SS fill:#ffd43b,stroke:#333
style BIO fill:#b197fc,stroke:#333,color:#fff
style SEC fill:#b197fc,stroke:#333,color:#fff
style DOM fill:#b197fc,stroke:#333,color:#fff
style DEMO fill:#b197fc,stroke:#333,color:#fff
style CHAT fill:#ffa8a8,stroke:#333
style GRR fill:#ffa8a8,stroke:#333
Core repositories
| Repository | Host | Visibility | Purpose |
|---|---|---|---|
samyama-graph | GitHub + Gitea + GitLab | Public | Rust graph-vector DB engine (OSS) |
samyama-graph-enterprise | Gitea | Private | GPU, monitoring, backup, licensing; syncs from OSS via a local path remote sg |
samyama-cloud | Gitea | Private | Book sources, wiki, deployment configs, backlog |
samyama-research | Gitea | Private | Paper sources, reviewer feedback, reproduction artifacts |
samyama-graph-competitor-benchmarks | Gitea | Private | LDBC suites (Interactive/BI/FinBench/Graphalytics) vs Neo4j/FalkorDB/TigerGraph, plus the 264M-node biomedical federation results |
samyama-graph-solutions | Gitea | Private | Solution accelerators |
samyama-insight | GitHub (VaidhyaMegha) | Public | React + Vite frontend; hosts the book at /book |
samyama-graph-web | GitHub (VaidhyaMegha) | Public | Web front end |
samyama-graph-book | GitHub + Gitea | Public | Book output |
samyama-chat | Gitea | Private | FastAPI GraphRAG chat UI. Talks to the engine over HTTP :8080; per-tenant LLM config via PATCH /api/tenants/:id. |
graphrag-rs | GitHub + Gitea | Public | Rust binary. Ingests a folder of docs (.md/.txt/.csv/.json), extracts entities and relationships via LLM, then serves the resulting graph as an MCP server. Embeds samyama-graph via a cargo path + version dep. Builds a new graph from docs — unlike samyama_mcp, which serves an existing one. |
Knowledge-graph repositories (~25)
Each loads its domain data through the Python SDK and exports a .sgsnap snapshot to
s3://samyama-data/snapshots/. The biomedical set is what the 15-KG federation composes.
| Domain | Repositories |
|---|---|
| Biomedical (federation inputs) | pubmed-kg (66M nodes / 1.04B edges), clinicaltrials-kg, pathways-kg, druginteractions-kg, surveillance-kg, health-determinants-kg, health-systems-kg, breast-cancer-pathway-kg, mental_health-kg |
| Security / IT ops | mitre-attack-kg, nvd-cve-kg, d3fend-kg, itbench-kg (private), lea-cybercrime, devops-kg |
| Industrial / finance / other | assetops-kg, bank-model-risk-kg, powergrid-kg, telecom-kg, edge-ai-kg, legal-judgments-graph-kg, wildfire-evac-kg, regulatory-affairs-kg |
| Demo / sport / media | cricket-kg, imdb-kg, football-kg, edtech-kg (template) |
External upstreams tracked as forks/remotes: IBM/AssetOpsBench, itbench-hub/ITBench.
AMR data was folded into
surveillance-kg(seeAMRProfilelabel) — the previously-listedamr-kgno longer exists as a separate repo.
The
samyama-aiGitHub org also holds ~25 research-artifact repos (one per paper —ce-metric-eval,token-cost-ledger,lsm-bloom-allocation,filtered-ann-regret, …) which are reproduction packages rather than ecosystem components, so they are not shown above.
Ecosystem in Action
Graph Simulation — Cricket KG (36K nodes, 1.4M edges) with live activity particles
Click for full demo (1:56) — Dashboard, Cypher Queries, and Graph Simulation
2. samyama-graph Module Architecture
The OSS engine is organized into 17 modules under src/, 4 workspace crates, and 3 SDK packages
(2 directories — sdk/python ships both samyama and samyama_mcp).
Full
src/listing:agent,algo,embed,graph,http,index,nlq,optimization,persistence,protocol,query,raft,rdf,sharding,snapshot,sparql,vector. The diagram shows the principal ones;algo,embed,http,index,optimization,rdf,sparqlandsnapshotare omitted from the graph for readability.
graph TB
subgraph "SDK Layer"
PYSDK["sdk/python<br/>samyama (PyO3)"]
MCP["sdk/python<br/>samyama_mcp"]
TSSDK["sdk/typescript<br/>samyama-sdk"]
end
subgraph "Crates"
SDK["crates/samyama-sdk<br/>EmbeddedClient + RemoteClient"]
ALGO["crates/samyama-graph-algorithms<br/>PageRank, WCC, SCC, BFS, etc."]
OPT["crates/samyama-optimization<br/>Rao-family + classical metaheuristics"]
GPUC["crates/samyama-gpu<br/>wgpu + CUDA (opt-in)"]
end
subgraph CLI
CLIRS["cli/<br/>query, status, shell"]
end
subgraph "Core Engine (src/)"
QUERY["query/<br/>parser (Pest) + planner + executor"]
GRAPH["graph/<br/>store, node, edge, property, catalog"]
PROTO["protocol/<br/>RESP server + HTTP API"]
PERSIST["persistence/<br/>RocksDB, WAL, tenant"]
RAFT["raft/<br/>openraft consensus"]
NLQ["nlq/<br/>text-to-Cypher (multi-provider)"]
AGENT["agent/<br/>GAK runtime + tools"]
VECTOR["vector/<br/>HNSW index"]
SHARD["sharding/<br/>tenant-level routing"]
end
%% SDK dependencies
PYSDK --> SDK
MCP --> PYSDK
TSSDK -->|"HTTP fetch"| PROTO
CLIRS --> SDK
%% Crate dependencies
SDK --> QUERY
SDK --> GRAPH
SDK --> PERSIST
SDK --> ALGO
SDK --> OPT
SDK --> NLQ
SDK --> AGENT
SDK --> VECTOR
%% Core module dependencies
QUERY --> GRAPH
PROTO --> QUERY
PROTO --> GRAPH
PERSIST --> GRAPH
RAFT --> PERSIST
NLQ --> QUERY
AGENT --> NLQ
VECTOR --> GRAPH
SHARD --> PERSIST
ALGO --> GRAPH
GPUC -->|"--features gpu/cuda"| ALGO
style QUERY fill:#4a9eff,stroke:#333,color:#fff
style GRAPH fill:#51cf66,stroke:#333,color:#fff
style PROTO fill:#ffd43b,stroke:#333
style SDK fill:#ff6b6b,stroke:#333,color:#fff
style MCP fill:#b197fc,stroke:#333,color:#fff
style PYSDK fill:#b197fc,stroke:#333,color:#fff
Module Responsibilities
| Module | Key Types | Entry Points |
|---|---|---|
graph/ | GraphStore, Node, Edge, PropertyValue, GraphCatalog | In-memory storage, O(1) lookups, sorted adjacency lists |
query/ | QueryExecutor, MutQueryExecutor, PhysicalOperator | Pest parser → AST → logical plan → physical plan → Volcano iterator |
protocol/ | RespServer, HttpServer, CommandHandler | RESP on :6379, HTTP on :8080 |
persistence/ | StorageEngine, WAL, TenantManager | RocksDB column families, per-tenant isolation |
raft/ | RaftNode, GraphStateMachine, ClusterManager | openraft-based leader election + log replication |
nlq/ | NLQPipeline, NLQClient, LLMProvider | text → schema-aware prompt → LLM → Cypher extraction |
agent/ | AgentRuntime, Tool trait, AgentConfig | GAK: query gap → enrichment prompt → LLM → Cypher → ingest |
vector/ | HnswIndex, VectorSearch | HNSW with cosine/L2/inner-product, bincode persistence |
snapshot/ | SnapshotHeader, export_tenant, import_tenant_with_dedup | .sgsnap export/import; header carries labels + edge_types, materialised from the data at export |
rdf/, sparql/ | RdfStore, SparqlExecutor | RDF triple/quad store + SPARQL execution |
crates/samyama-gpu | GpuRuntime, GpuContext, gpu_page_rank | wgpu/WGSL + CUDA (cudarc/NVRTC) backends; opt-in via --features gpu / cuda |
crates/samyama-sdk | SamyamaClient, EmbeddedClient, RemoteClient | Async trait with extension traits (AlgorithmClient, VectorClient) |
crates/samyama-graph-algorithms | GraphView (CSR), PageRank, WCC, SCC, BFS, Dijkstra | Build CSR projection → run algorithm → return results |
crates/samyama-optimization | Solver trait, GA, PSO, SA, ACO, etc. | 15 solvers with or.solve() Cypher procedure |
sdk/python/samyama | SamyamaClient (PyO3) | .embedded() / .connect(url) factory methods |
sdk/python/samyama_mcp | SamyamaMCPServer, generators, schema discovery | Auto-generate MCP tools from graph schema |
sdk/typescript | SamyamaClient class | Pure TS with fetch, .connectHttp() factory |
3. Enterprise Feature Layering (OSS → SGE)
graph TB
subgraph OSS ["samyama-graph (OSS — Apache 2.0)"]
QE["Query Engine<br/>~90% OpenCypher"]
PS["Persistence<br/>RocksDB + WAL"]
VS["Vector Search<br/>HNSW"]
GA["Graph Algorithms<br/>PageRank, WCC, BFS..."]
NQ["NLQ<br/>text-to-Cypher"]
HV["HTTP Visualizer"]
RF["Raft Consensus<br/>(basic)"]
MO["Metaheuristic<br/>Optimization"]
RDF["RDF / SPARQL"]
GPUO["GPU Acceleration<br/>(wgpu + CUDA, opt-in)"]
AG["Agent / GAK Runtime"]
SNAP["Snapshot Export/Import<br/>(.sgsnap)"]
SR["Sharding<br/>(basic tenant router)"]
end
subgraph SGE ["samyama-graph-enterprise (Proprietary)"]
MT["Multi-Tenancy<br/>Admin API (CRUD + quotas)"]
MON["Prometheus /metrics<br/>+ OTLP"]
HC["Health Checks"]
BK["Backup & Restore<br/>(PITR)"]
AU["Audit Trail"]
SQ["Slow Query Log"]
ADM["ADMIN.* Commands"]
ERF["Enhanced Raft<br/>(HTTP transport)"]
LIC["JET Licensing<br/>(Ed25519 signed)"]
CBO["Cost-Based Optimizer<br/>+ Graph-Native Planning"]
COL["Columnar Property Store<br/>Label Interning · Index Manager"]
LDR["Enterprise Ingestion<br/>(chembl, uniprot, opentargets,<br/>umls, disgenet, sider, go/goa,<br/>obo, clinvar/dbsnp, crosslink)"]
end
subgraph DEV ["In-flight on dev branch (unreleased)"]
SVS["Sharded Versioned<br/>Storage (MVCC)"]
XSC["Cross-Shard Read<br/>Coordinator"]
PHA["Production HA<br/>(Raft F-series +<br/>snapshot install)"]
end
SGE -->|"inherits all of"| OSS
DEV -.->|"targets"| SGE
GPUO -->|"accelerates"| GA
GPUO -->|"accelerates"| VS
MON -->|"observes"| QE
BK -->|"snapshots"| PS
AU -->|"logs"| QE
LIC -->|"gates"| SGE
CBO -->|"replaces"| QE
COL -->|"backs"| PS
XSC -->|"reads via"| SVS
PHA -->|"replicates"| SVS
style OSS fill:#e8f5e9,stroke:#2e7d32
style SGE fill:#fce4ec,stroke:#c62828
style DEV fill:#fff8e1,stroke:#f57f17,stroke-dasharray: 5 5
Verified 2026-08-19. Authoritative feature-matrix source is Enterprise Edition Overview → Feature Matrix. Shifts since last reconciliation:
- GPU acceleration ported to OSS (
crates/samyama-gpu, samyama-graph#291): opt-in via--features gpu(wgpu/WGSL) or--features cuda(via cudarc/NVRTC). Enterprise still ships tuned defaults and CUDA prebuilds.- Multi-Tenancy moved to SGE side: OSS provides per-tenant isolation primitives in
src/persistence/tenant.rs, but the tenant CRUD Admin API + quotas + audit surface is SGE-only.- Added on OSS side:
agent/(GAK runtime),snapshot/(.sgsnap),sharding/(basic tenant router).- Added on SGE side: Cost-Based Optimizer + Graph-Native Planning (ADR-015/017), Columnar Property Store / Label Interning / Index Manager (ADR-021/028/029), Enterprise Ingestion (10 biomedical loaders), OTLP metrics alongside Prometheus.
- Dashed “In-flight on dev” cluster: Sharded Versioned Storage + Cross-Shard Read Coordinator (MVCC, Phase 5.2, PRs #394–#406) and Production HA (Raft F-series + snapshot install, ADR-034 on the
dev-habranch). Not yet in a shipped release; called out so the diagram doesn’t advertise unreleased features on the SGE side.
4. Knowledge Graph Projects
All KG projects share the same stack: Python SDK → samyama-mcp-serve → custom config.
The diagram shows three representative projects; there are ~25 KG repositories (see §1). The largest is
pubmed-kg— 66.2M nodes / 1.04B edges — which anchors the 15-KG biomedical federation (264.2M nodes / 1.35B edges).
graph TB
subgraph Engine ["Samyama Engine"]
SG["samyama-graph<br/>(Rust)"]
PYSDK["samyama<br/>(Python SDK / PyO3)"]
MCPSERVE["samyama_mcp<br/>(MCP serve)"]
end
subgraph KGs ["Knowledge Graph Projects"]
subgraph CKG ["cricket-kg"]
CETL["etl/loader.py<br/>(Cricsheet JSON)"]
CMCP["mcp_server/<br/>config.yaml (12 custom)"]
CTEST["tests/<br/>25 MCP tests"]
end
subgraph CTKG ["clinicaltrials-kg"]
CTETL["etl/loader.py<br/>(API or AACT flat files)"]
CTMCP["mcp_server/<br/>16 tools (hand-written)"]
CTAACT["etl/aact_loader.py<br/>(500K+ studies)"]
end
subgraph AOKG ["assetops-kg"]
AOETL["etl/loader.py"]
AOMCP["mcp_server/<br/>9 tools"]
end
end
SG --> PYSDK
PYSDK --> MCPSERVE
MCPSERVE --> CMCP
MCPSERVE -.->|"SK-14: migrate"| CTMCP
MCPSERVE -.->|"SK-15: migrate"| AOMCP
PYSDK --> CETL
PYSDK --> CTETL
PYSDK --> CTAACT
PYSDK --> AOETL
style SG fill:#4a9eff,stroke:#333,color:#fff
style MCPSERVE fill:#b197fc,stroke:#333,color:#fff
style CKG fill:#d0f0c0,stroke:#2e7d32
style CTKG fill:#ffe0b2,stroke:#e65100
style AOKG fill:#e1bee7,stroke:#6a1b9a
KG Schema Summary
Grouped by domain. ✅ shipped = loader + MCP server exercised end-to-end; 🟡 partial = data loads but tools/coverage still thin; ⚪ stub = README exists, ingest not yet wired.
Biomedical (federation inputs)
| KG | Node Labels | Edge Types | Data Source | Data Volume | Status |
|---|---|---|---|---|---|
pubmed-kg | 6 (Article, Author, MeSHTerm, Chemical, Journal, Grant) | 6 | NLM MEDLINE baseline | 66.2M nodes / 1.04B edges | ✅ |
clinicaltrials-kg | 11 (ClinicalTrial, Condition, Intervention, ArmGroup, Outcome, Sponsor, Site, AdverseEvent, MeSHDescriptor, Drug, Publication) | 11 | ClinicalTrials.gov + MeSH + RxNorm/ATC + OpenFDA FAERS + PubMed | 7.8M nodes / 27M edges | ✅ |
pathways-kg | 5 (Protein, GOTerm, Complex, Reaction, Pathway) | 9 | Reactome + STRING v12 + GO + WikiPathways + UniProt | 119K nodes / 835K edges | ✅ |
druginteractions-kg | 6 (Drug, Gene, SideEffect, Indication, Bioactivity, AdverseEvent) | 5 | DrugBank + DGIdb + SIDER + ChEMBL 36 + OpenFDA FAERS | 245K nodes / 388K edges | ✅ |
surveillance-kg | 7 (Country, Region, Disease, DiseaseReport, VaccineCoverage, AMRProfile, HealthIndicator) | 7 | WHO GHO | (WHO GHO) | 🟡 |
breast-cancer-pathway-kg | (CBIS-DDSM abnormalities → pathway) | — | CBIS-DDSM (open mammography) | 12,344 / 20,916 | 🟡 |
mental_health-kg | — | — | US federal behavioural-health facility data | 17,678 / 1.47M | 🟡 |
health-determinants-kg | — | — | — | (stub) | ⚪ |
health-systems-kg | — | — | — | (stub) | ⚪ |
Security / IT-ops
| KG | Node Labels | Edge Types | Data Source | Data Volume | Status |
|---|---|---|---|---|---|
mitre-attack-kg | MITRE ATT&CK objects | — | mitre/cti master | 2,192 / 21,986 | ✅ |
d3fend-kg | DefensiveTechnique, OffensiveTechnique | ≥1 (COUNTERS) | MITRE D3FEND CSV | 791 / 4,152 | 🟡 |
devops-kg | Tool, Concept, Postmortem, Answer, … | ≥1 (SYNTHESIZES) | Hand-curated seed | seed JSON-Lines | 🟡 |
itbench-kg (private) | k8s + traces + alerts model | — | IBM/itbench-hub ITBench | sample only | 🟡 |
nvd-cve-kg | — | — | NVD CVE feeds | (stub) | ⚪ |
lea-cybercrime | — | — | — | (stub) | ⚪ |
Industrial / finance / regulatory
| KG | Node Labels | Edge Types | Data Source | Data Volume | Status |
|---|---|---|---|---|---|
assetops-kg | 9 (Asset, Component, FailureMode, MaintenanceRecord, …) | 5 | IBM AssetOpsBench | 12,647 / 12,662 | ✅ |
bank-model-risk-kg | 12 (Model, Validation, ValidationFinding, Person, …) | 17 | Synthetic bank model-risk inventory | 520 / ~2.4K | ✅ |
regulatory-affairs-kg | 34 | 39 | FDA + EUDAMED + ISO stubs | 28,496 / 25,310 | ✅ |
edge-ai-kg | Board, Kernel, NeuralNet, … | — | Silicon / kernel / NN specs | 25,145 / 76,291 | 🟡 |
powergrid-kg | 3 (Bus, Generator, Load) | 3 (AT_BUS, CONNECTS, STEPS_DOWN) | pglib-opf | (pglib cases) | 🟡 |
telecom-kg | 1 (PoP) | — | Public PoP inventory | — | ⚪ |
Legal / public safety
| KG | Node Labels | Edge Types | Data Source | Data Volume | Status |
|---|---|---|---|---|---|
legal-judgments-graph-kg | 5 (Topic, Party, Case, Act, Judge) | 4 (DECIDED, PARTY_IN, CITES, ABOUT) | Indian Supreme Court 2016 judgments | 4,462 / 8,363 | ✅ |
wildfire-evac-kg | (extract-only, no loader yet) | — | OSM ways/nodes | 13,787 elements | ⚪ |
Demo / sport / media
| KG | Node Labels | Edge Types | Data Source | Data Volume | Status |
|---|---|---|---|---|---|
cricket-kg | 6 (Player, Match, Team, Venue, Tournament, Season) | 12 | Cricsheet JSON (21,325 files) | 36K / 1.4M | ✅ |
imdb-kg | — | — | IMDb datasets | — | 🟡 |
football-kg | — | — | Public match data | — | 🟡 |
edtech-kg | (template only) | — | — | (unfilled) | ⚪ |
5. Feature Dependency Graph (Backlog)
The complete feature dependency chain across all backlog items.
Green = done · blue = in progress · orange = reverted / regressed · white = planned.
Statuses reconciled 2026-08-19; authoritative source is samyama-cloud/BACKLOG.md.
graph TB
subgraph "Query Engine (Done ✅)"
QE01["QE-01<br/>Parameterized $param"]
QE02["QE-02<br/>PROFILE stats"]
QE03["QE-03<br/>shortestPath()"]
QE07["QE-07<br/>CALL procedures"]
end
subgraph "Cypher Completeness (Done ✅)"
CY01["CY-01<br/>collect(DISTINCT)"]
CY02["CY-02<br/>datetime args"]
CY04["CY-04<br/>Named paths"]
CY05["CY-05<br/>Path functions"]
end
subgraph "Planner / Optimizer (Done ✅)"
QP01["QP-01 Predicate pushdown"]
QP02["QP-02 Cost-based"]
QP05["QP-05 Plan cache"]
QP11["QP-11 Graph-native enum"]
QP12["QP-12 Triple stats"]
QP13["QP-13 ExpandInto"]
QP14["QP-14 Direction reversal"]
QP15["QP-15 Logical plan IR"]
end
subgraph "Planner (Planned)"
QP06["QP-06<br/>Histogram stats"]
QP09["QP-09<br/>Operator fusion"]
QP10["QP-10<br/>Adaptive exec"]
end
subgraph "Indexes (Done ✅)"
IX01["IX-01..06<br/>DROP/SHOW/Composite/Unique"]
end
subgraph "Indexes (Planned)"
IX07["IX-07<br/>Full-text index"]
IX08["IX-08<br/>OR union scans"]
end
subgraph "Performance (Done ✅)"
PF01["PF-01 CSR"]
PF04["PF-04 Late materialization"]
PF06["PF-06 AST cache"]
PF07["PF-07 MVCC<br/>(Phase 5.2 v1)"]
PF09["PF-09 WCO joins<br/>(LeapFrog TrieJoin)"]
end
subgraph "Performance (Planned)"
PF10["PF-10<br/>Parallel exec"]
end
subgraph "Data Structures (Done ✅)"
DS01["DS-01 Triple stats"]
DS02["DS-02 Sorted adjacency"]
end
subgraph "Data Structures (Planned)"
DS03["DS-03<br/>Type-partitioned adj"]
end
subgraph "SDK / MCP (Done ✅)"
SK01["SK-01..06<br/>Rust/Python/TS SDK + CLI"]
SK09["SK-09 npm publish"]
SK10["SK-10 EXPLAIN/PROFILE"]
SK11["SK-11 Schema/Stats"]
SK12["SK-12<br/>samyama-mcp-serve"]
SK13["SK-13<br/>cricket-kg MCP"]
end
subgraph "SDK (Planned)"
SK14["SK-14<br/>clinicaltrials MCP"]
SK15["SK-15<br/>assetops MCP"]
end
subgraph "HA (Done ✅)"
HA01["HA-01 Raft"]
HA02["HA-02 Sharding"]
HA03["HA-03 Vector persist"]
end
subgraph "HA (In Progress 🔵)"
HA05["HA-05<br/>Graph sharding<br/>(per-shard Raft — ADR-034)"]
end
subgraph "HA (Planned)"
HA04["HA-04<br/>Temporal queries<br/>(AT TIME syntax)"]
HA06["HA-06<br/>Distributed exec"]
end
subgraph "Distributed & MVCC 2026 (Shipped ✅ / ⚠ reverted)"
XSC["Cross-Shard Read<br/>Coordinator<br/>(PRs #394–#404)"]
VDS["Versioned-Disk<br/>Write + Recovery<br/>(PR #405)"]
WAM["Applied-Watermark<br/>Wiring (slice-d lag gate)<br/>(PR #406)"]
TOM["Deleted-at-T<br/>Tombstones"]
GC["Retention-Window GC<br/>(bounded by watermark)"]
V2PC["Versioned-Tombstone 2PC<br/>⚠ reverted #494"]
end
subgraph "AI (Done ✅)"
AI01["AI-01 GAK runtime"]
AI02["AI-02 NLQ"]
AI03["AI-03 Auto-embed"]
end
subgraph "AI / JIT KG (Planned)"
AI07["AI-07<br/>Enterprise connectors"]
AI08["AI-08<br/>Demand-driven agent"]
AI09["AI-09<br/>Text-to-SQL bridge"]
AI10["AI-10<br/>JIT KG demo"]
end
subgraph "GPU (Done ✅)"
GP01["GP-01..10<br/>PageRank, CDLP, LCC,<br/>PCA, triangles, vectors,<br/>aggregates, sort"]
end
subgraph "Benchmarks (Done ✅)"
BM01["BM-01..03<br/>Graphalytics, SNB, FinBench"]
end
subgraph "Benchmarks (Planned)"
BM04["BM-04<br/>SF10 scale"]
BM05["BM-05<br/>SNB BI tuning"]
BM07["BM-07<br/>Comparative bench"]
end
subgraph "Visualizer (Done ✅)"
VZ01["VZ-01..05<br/>Plan DAG, PROFILE,<br/>Stats, Console, Features"]
VZ07["VZ-07..10<br/>Schema, CSV/JSON Import, E2E"]
end
subgraph "KG Projects"
KG01["KG-01<br/>AACT full loader<br/>(in progress)"]
end
%% Dependencies
CY01 & CY02 & QE03 & CY04 --> BM05
CY04 --> CY05
PF06 --> QP05
QP01 & QP02 --> BM04
PF07 --> HA04
DS02 --> PF09
HA05 --> HA06
QE01 --> QP11
QP12 --> QP11
DS02 --> QP13
QP14 --> QP11
QP15 --> QP11
SK09 --> VZ01
SK10 --> VZ01
SK11 --> VZ07
QE07 --> VZ07
SK12 --> SK13
SK12 --> SK14
SK12 --> SK15
%% JIT KG chain
AI01 --> AI07
AI02 --> AI07
SK12 --> AI07
AI02 --> AI09
AI07 --> AI08
AI09 --> AI08
AI08 --> AI10
%% KG-01
IX01 --> KG01
%% Benchmark deps
BM07 -.-> BM05
style QE01 fill:#51cf66,stroke:#333,color:#fff
style QE02 fill:#51cf66,stroke:#333,color:#fff
style QE03 fill:#51cf66,stroke:#333,color:#fff
style QE07 fill:#51cf66,stroke:#333,color:#fff
style CY01 fill:#51cf66,stroke:#333,color:#fff
style CY02 fill:#51cf66,stroke:#333,color:#fff
style CY04 fill:#51cf66,stroke:#333,color:#fff
style CY05 fill:#51cf66,stroke:#333,color:#fff
style QP01 fill:#51cf66,stroke:#333,color:#fff
style QP02 fill:#51cf66,stroke:#333,color:#fff
style QP05 fill:#51cf66,stroke:#333,color:#fff
style QP11 fill:#51cf66,stroke:#333,color:#fff
style QP12 fill:#51cf66,stroke:#333,color:#fff
style QP13 fill:#51cf66,stroke:#333,color:#fff
style QP14 fill:#51cf66,stroke:#333,color:#fff
style QP15 fill:#51cf66,stroke:#333,color:#fff
style IX01 fill:#51cf66,stroke:#333,color:#fff
style PF01 fill:#51cf66,stroke:#333,color:#fff
style PF04 fill:#51cf66,stroke:#333,color:#fff
style PF06 fill:#51cf66,stroke:#333,color:#fff
style PF07 fill:#51cf66,stroke:#333,color:#fff
style PF09 fill:#51cf66,stroke:#333,color:#fff
style DS01 fill:#51cf66,stroke:#333,color:#fff
style DS02 fill:#51cf66,stroke:#333,color:#fff
style SK01 fill:#51cf66,stroke:#333,color:#fff
style SK09 fill:#51cf66,stroke:#333,color:#fff
style SK10 fill:#51cf66,stroke:#333,color:#fff
style SK11 fill:#51cf66,stroke:#333,color:#fff
style SK12 fill:#51cf66,stroke:#333,color:#fff
style SK13 fill:#51cf66,stroke:#333,color:#fff
style HA01 fill:#51cf66,stroke:#333,color:#fff
style HA02 fill:#51cf66,stroke:#333,color:#fff
style HA03 fill:#51cf66,stroke:#333,color:#fff
style HA05 fill:#4a9eff,stroke:#333,color:#fff
style AI01 fill:#51cf66,stroke:#333,color:#fff
style AI02 fill:#51cf66,stroke:#333,color:#fff
style AI03 fill:#51cf66,stroke:#333,color:#fff
style GP01 fill:#51cf66,stroke:#333,color:#fff
style BM01 fill:#51cf66,stroke:#333,color:#fff
style VZ01 fill:#51cf66,stroke:#333,color:#fff
style VZ07 fill:#51cf66,stroke:#333,color:#fff
style KG01 fill:#4a9eff,stroke:#333,color:#fff
style AI07 fill:#fff,stroke:#333
style AI08 fill:#fff,stroke:#333
style AI09 fill:#fff,stroke:#333
style AI10 fill:#fff,stroke:#333
%% Distributed & MVCC 2026 — internals of PF-07 / HA-05
PF07 --> XSC
PF07 --> VDS
PF07 --> WAM
PF07 --> TOM
PF07 --> GC
HA05 --> V2PC
style XSC fill:#51cf66,stroke:#333,color:#fff
style VDS fill:#51cf66,stroke:#333,color:#fff
style WAM fill:#51cf66,stroke:#333,color:#fff
style TOM fill:#51cf66,stroke:#333,color:#fff
style GC fill:#51cf66,stroke:#333,color:#fff
style V2PC fill:#ff922b,stroke:#333,color:#fff
6. Data Flow: Query → Enrichment → Response
This diagram shows the runtime data flow for a JIT KG query, incorporating the planned AI-07..AI-10 features.
sequenceDiagram
participant U as User / Agent
participant MCP as MCP Server
participant NLQ as NLQ Pipeline
participant QE as Query Engine
participant GS as GraphStore
participant AG as GAK Agent
participant SRC as Enterprise Source<br/>(OneDrive / OLTP)
U->>MCP: Natural language question
MCP->>NLQ: text_to_cypher(question, schema)
NLQ->>QE: MATCH (n:Person)-[:AUTHORED]->(d:Document)...
QE->>GS: Execute query
GS-->>QE: 0 results (gap detected)
QE-->>MCP: Empty result set
Note over MCP,AG: AI-08: Demand-driven enrichment triggers
MCP->>AG: process_trigger(gap_context)
AG->>SRC: AI-07: Pull from OneDrive (documents)
SRC-->>AG: Document metadata + content
AG->>NLQ: Extract entities (LLM)
NLQ-->>AG: Cypher: CREATE (p:Person)..., CREATE (d:Document)...
AG->>QE: Execute enrichment Cypher
QE->>GS: MERGE nodes + edges
AG->>SRC: AI-09: text-to-SQL (OLTP database)
SRC-->>AG: Relational rows
AG->>NLQ: Transform to graph entities (LLM)
NLQ-->>AG: Cypher: CREATE (proj:Project)...
AG->>QE: Execute enrichment Cypher
QE->>GS: MERGE nodes + edges
Note over MCP,GS: Graph enriched — re-execute original query
MCP->>QE: Re-execute original Cypher
QE->>GS: Execute query
GS-->>QE: Results (populated)
QE-->>MCP: Result set
MCP-->>U: Answer with graph context
7. Deployment Architecture
graph TB
subgraph "Samyama Server"
SGE_BIN["samyama-graph<br/>(release binary)"]
ROCKS["RocksDB<br/>(persistent storage)"]
SI_DIST["samyama-insight<br/>(static dist/)"]
end
subgraph "Developer Workflow"
SG_DEV["samyama-graph<br/>(cargo build)"]
PY_DEV["Python SDK<br/>(maturin develop)"]
KG_DEV["KG projects<br/>(python -m etl.loader)"]
end
subgraph "External Services"
LLM["LLM Provider<br/>(OpenAI / Claude / Ollama)"]
end
SGE_BIN -->|":6379 RESP"| ROCKS
SGE_BIN -->|":8080 HTTP"| SI_DIST
SG_DEV -->|"local path remote 'sg'"| SGE_BIN
SG_DEV --> PY_DEV --> KG_DEV
SGE_BIN -->|"NLQ / GAK"| LLM
style SGE_BIN fill:#ff6b6b,stroke:#333,color:#fff
style SG_DEV fill:#4a9eff,stroke:#333,color:#fff
Production topologies in use today
The diagram above captures the dev-loop shape. In production, four topologies are exercised.
a) Single-node Docker (api.samyama.dev pattern).
Sandbox and pilot tenants run this. A single samyama:1.x-licensed container (Debian-slim
runtime, RocksDB in /data) exposes :6379 (RESP) and :8080 (HTTP) behind nginx for TLS
termination. Healthcheck hits /api/status. Deploy script:
samyama-graph-enterprise/deploy/enterprise/scripts/deploy.sh on the target host, invoked
from release.sh over SSH. Systemd unit exists (samyama-enterprise.service) but is disabled
in favour of Docker; the license file is baked into the image.
b) HA cluster (Raft, N=3) — dev-ha branch only.
Three peers running the same image with an openraft-based transport; leader serves the client
protocol, followers proxy write requests. RF (replication factor) support lives only on the
dev-ha branch of samyama-graph-enterprise; ADR-034 tracks the production HA work. Not yet
in a shipped release.
c) Sharded cluster (Phase 5.2) — code-only, no deploy script yet.
The versioned-storage + per-shard Raft + cross-shard read coordinator stack (§5 “Distributed &
MVCC 2026”) is on dev; there is currently no deploy.sh mode for it. Standing this up
requires per-shard state-machine wiring plus a shard-layout config — no one-command deploy path.
d) Ecosystem sidecars around a deployed engine. Wherever the engine runs, the same set of adjuncts attach:
nginx— TLS + Basic-Auth for the visualizer and REST paths.samyama-chat(FastAPI) — GraphRAG chat UI on a separate port; talks to:8080and configures per-tenant LLMs viaPATCH /api/tenants/:id.graphrag-rs— MCP server + KG builder; not a sidecar but a peer binary that embedssamyama-graphvia a cargo path+version dep and can populate a fresh tenant from a folder of docs.samyama_mcp(Python, FastMCP v2) — stdio MCP bridge to the engine’s schema/tools; attached from a client machine, not deployed alongside the server.samyama-insight(React + Vite) — dashboard served as static assets on the same host, or bundled inside the engine binary viarust-embed.
External deployment used one-off: AWS spot cluster
(samyama-graph/deploy/aws-spot-cluster/) — biomed-100M staging, ETL and hero-KG loads
(chembl, opentargets, UMLS). Not a Raft cluster; ephemeral ETL boxes.
8. Version Sync Points
These are the files that carry a version and are updated together on a version bump (Step 0.5 in the workflow).
Verified 2026-08-19. Most files now align at 1.7.0. Two stragglers remain — treat as bump-together candidates on the next release, not intentional independence:
crates/samyama-gpu/Cargo.toml— 1.1.0 (last bumped when GPU landed in OSS)sdk/python/samyama_mcp/__init__.py— 0.7.0 (__version__string not updated alongside the parent SDK)OSS tag lag: last published tag is
v1.1.0; the tree is at1.7.0— 6 minors of unreleased work. Every 1.7.0 in this section is a WIP number, not a shipped SKU.SGE tracks its own scheme: root/cli/crates at 1.1.0,
sdk/python/pyproject.tomlat 0.7.0, and itsCLAUDE.mdstill reads v0.9.0 (stale — needs bumping alongside next OSS→SGE sync).
graph LR
V["Version<br/>(currently 1.7.0)"]
V --> CT["Cargo.toml<br/>(root)"]
V --> CLI["cli/Cargo.toml"]
V --> SDKRS["crates/samyama-sdk/<br/>Cargo.toml"]
V --> OPTC["crates/samyama-optimization/<br/>Cargo.toml"]
V --> ALGOC["crates/samyama-graph-algorithms/<br/>Cargo.toml"]
V --> GPUCT["crates/samyama-gpu/<br/>Cargo.toml<br/>⚠ 1.1.0 straggler"]
V --> PYC["sdk/python/Cargo.toml"]
V --> PYP["sdk/python/pyproject.toml"]
V --> MCPI["sdk/python/samyama_mcp/<br/>__init__.py<br/>⚠ 0.7.0 straggler"]
V --> TSP["sdk/typescript/package.json"]
V --> TSL["sdk/typescript/package-lock.json"]
V --> API["api/openapi.yaml"]
V --> LIB["src/lib.rs<br/>(test_version)"]
V --> CMD["CLAUDE.md"]
V --> RM["README.md<br/>(ECR image tag)"]
style V fill:#ffd43b,stroke:#333
style GPUCT fill:#ffe0b2,stroke:#e65100
style MCPI fill:#ffe0b2,stroke:#e65100
9. Technology Stack
Versions pinned from samyama-graph/Cargo.toml at tree version 1.7.0 (verified 2026-08-19).
| Layer | Technology | Purpose |
|---|---|---|
| Language | Rust (2021 edition) | Core engine, persistence, protocol |
| Parser | pest 2.7 + pest_derive | OpenCypher grammar → AST |
| Storage | rocksdb 0.22 (lz4 + zstd) | Persistent key-value with column families |
| Consensus | openraft 0.9 (serde) | Raft leader election + log replication |
| Vector Index | hnsw_rs 0.2.1 | Approximate nearest neighbor search (HNSW; cosine / L2 / inner-product) |
| GPU | wgpu + WGSL shaders; CUDA via cudarc + NVRTC | GPU-accelerated algorithms — in OSS, opt-in via --features gpu / cuda |
| HTTP framework | axum 0.7 + tower 0.5 + tower-http 0.5 | REST API on :8080, visualizer, admin endpoints |
| HTTP client | reqwest 0.13 | LLM providers, NLQ, cross-shard RPC |
| Async runtime | tokio 1.35 (features=full) | Async I/O across engine + protocol layers |
| RDF / SPARQL | oxrdf 0.2 + oxiri 0.2 + rio_turtle / rio_xml 0.8 + spargebra 0.3 + sparesults 0.2 | Full triple store + SPARQL 1.1 execution |
| Parallelism | rayon 1.10 | Data-parallel graph algorithms & bulk ingest |
| Numerics | ndarray 0.15 | Optimization + algorithm kernels |
| Snapshot compression | flate2 1.0 | .sgsnap gzip streams |
| Serialization | serde 1.0 + bincode 1.3 | RESP/HTTP payloads + vector-index persistence |
| Visualizer assets | rust-embed 8.0 | Static React bundle baked into the engine binary |
| UUID | uuid 1.8 (v4) | Tenant + snapshot identifiers |
| Python SDK | PyO3 0.22 + maturin | Rust → Python FFI binding |
| MCP Framework | FastMCP v2 (fastmcp) | Model Context Protocol stdio server |
| TypeScript SDK | Pure TS + fetch | HTTP client for browser / Node.js |
| Frontend | React + Vite + shadcn/ui (vite_react_shadcn_ts) | Interactive dashboard (samyama-insight, samyama-graph-web) |
| E2E Testing | Playwright | Browser-based end-to-end tests |
| Benchmarks | Criterion | Rust micro-benchmarks ([[bench]] suites) |
| CI/CD | GitHub Actions (OSS) + Gitea Actions (enterprise) | Automated builds, tests, publish, sync |
| Licensing | Ed25519 (JET tokens) | Cryptographic feature gating |
| LLM Integration | Implemented: OpenAI, Ollama, Gemini, Claude Code (CLI). Declared but unimplemented: Anthropic Messages API, Azure OpenAI. Mock provider for tests. | NLQ + Agentic enrichment |
