One database, several ways to ask

ShrikeDB keeps property graphs, RDF facts, OWL ontologies, vectors, key–value records, and geospatial observations under one entity identity. Cypher, SPARQL, SQL, and typed APIs lower into shared execution and storage services. The execution path changes with the question. The transaction boundary does not.

Cypher, SPARQL, SQL, and typed APIs use graph, RDF and OWL, vector, geospatial, and key-value indexes that share entity identity and transactional storage. Registered local Parquet remains on a separate direct source-read path.
Native indexes share identity and commit state. Registered Parquet remains an explicit source-read path.
One entity identity

Move from a vector neighbor or location event to graph relationships and application records by UID.

One published version

A query pins a readable version. A commit publishes connected changes together.

One recovery history

The write-ahead log records durable intent before publication and drives restart recovery.

The transaction path

A transaction stages graph, vector, key–value, and geospatial changes under one commit identifier. Validation runs before publication. A successful commit makes the accepted changes visible as one state transition. A rejected or rolled-back transaction publishes none of them. If a connection drops during commit, the application resolves the transaction's recorded outcome before issuing another logical change.

Cypher, SPARQL, and SQL use the same planner and storage services for their accepted statement shapes. SQL exposes scalar and relational operations over TRIPLES, GRAPH.<label>, and table functions for vector, geospatial, and key–value search. It creates no separate relational copy.

A ShrikeDB transaction pins an MVCC read version, stages graph, vector, key-value, and geospatial changes, validates conflicts, appends and flushes a write-ahead log record, publishes one commit version, and can be replayed during recovery. HA-covered operations add quorum prepare, a durable decision, and idempotent replica apply.
Durability precedes publication. Recovery and replica apply consume the same committed transaction identity.

ACID across connected data

Atomicity keeps a graph change and its related vector, payload, or observation in the same commit. Consistency applies schema, index, authorization, and conflict checks before publication. Isolation gives each read a pinned published version. Durability records an accepted commit in the WAL before the server reports it durable.

The useful consequence is simple: an application does not have to repair the interval in which a node exists but its embedding does not, or a geospatial observation appears without the entity update that explains it.

MVCC gives the query one history

Readers pin a published version for the duration of a request. Concurrent writers can prepare later versions without changing the state already visible to that query. Graph expansion, vector filtering, key lookup, and geospatial selection therefore agree on the same publication boundary.

Versioning also gives recovery and replication a precise order. A replica can reject stale work, recognize a repeated apply, and resume from a known durable point instead of guessing which index moved first.

The WAL is the recovery contract

ShrikeDB appends transaction records to its write-ahead log, groups compatible durability work, and publishes only after the required flush completes. On restart, recovery replays committed records in order and reconstructs the published state and its derived access paths.

Checksummed records, commit identities, and replay-safe operations make recovery repeatable. The design keeps durable bytes sequential while allowing index preparation and post-commit work to use parallel hardware.

Share the disk work. Keep each transaction.

A storage flush can make several transaction records durable at once. ShrikeDB's native storage replay supports bounded groups of admitted independent transactions. Each member keeps its own log record, commit identity, and recovery receipt. Sharing the flush reduces repeated storage work without turning separate application changes into one transaction.

Recovery advances through a complete durable log prefix. A later completed write cannot hide an earlier unfinished one. Once grouped commit owns the work, it continues through durability and publication even if its caller disconnects; orderly shutdown waits for that work to finish.

This grouping currently serves the native storage replay path. Public HA request batching remains a separate integration step. The HA guide explains recovery and application retry behavior.

HA keeps the decision durable

For HA-covered operations, a coordinator prepares the participating replicas, records the commit decision through quorum, and applies that decision idempotently. Durable receipts let repair distinguish a transaction that never committed from one whose decision survived while a replica was unavailable.

Write forwarding routes supported operations to the responsible leader. Replica apply uses the transaction identity and version to make retries safe. Read routing observes the published version required by the request.

Current transaction and HA coverage
SurfaceCommit and recoveryDeployment coverage
Typed graph, vector, KV, and geospatial transaction APIsAtomic multimodal commit, MVCC read version, WAL recoveryStandalone; selected operations use HA quorum coordination and replica apply
Cypher mutationsAtomic request boundary on the native graph storage pathStandalone server
SPARQL updatesAtomic ordered update on the native RDF and graph storage pathStandalone server
SQL reads and graph-node mutationsShared graph, vector, geospatial, and KV operators; graph DML uses the native graph-write serviceStandalone server; SQL reads compose across native modalities
Distributed readsVersion-aware routing and result assemblyBulk KV, packed and streaming vector, graph scan, and supported graph-scan Cypher/SPARQL shapes
ShrikeDB CloudWAL-backed single-writer serviceHA mode is currently disabled for public tenants

Configure and operate an HA cluster or review transactions and snapshot behavior.

Indexes meet at the entity

An entity UID connects its graph vertex, embedding, key–value payload, and geospatial observations. A vector result can start a graph pattern; a place-and-time result can lead to stored relationships. Each modality keeps an access path suited to its work while the application keeps one identity and one publication history.

This matters most in compound queries. “Find semantically similar reports from suppliers connected to this account during the affected interval” should not require three databases, an identity reconciliation job, and a prayer offered to the cache invalidation gods.

OWL turns vocabulary into executable context

ShrikeDB imports Turtle, RDF/XML, and OWL sources as queryable RDF facts. Optional Rust-native materialization computes supported class, property, equality, restriction, and role inferences before publication. SPARQL can query the resulting ontology graph directly; bounded ontology functions let Cypher test subclass, reachability, ancestor, descendant, and path relationships against the same graph snapshot.

Semantic profiles connect application labels and fields to ontology concepts. Query results can retain the grounding path that justified a class match, which gives an analyst evidence to inspect instead of a category that appeared by administrative magic.

Import and query an ontology or review semantic profiles and ontology bindings.

Derive relationships with their evidence

Co-location, repeated visits, shared counterparties, and other correlations depend on parameters chosen for the investigation. Cypher can return the matching entities and evidence as rows. SPARQL CONSTRUCT can return a result graph. An application can inspect that result before deciding whether any relationship belongs in durable state.

See the query-time graph example and a place-and-time conjunction.

Read Parquet without staging a copy

Register local Parquet and publish a reviewed mapping of source columns to graph concepts. Supported Cypher, SPARQL, HTTP, and MCP source queries project needed columns and apply bounded predicates against the registered files. The files remain authoritative, so exploration does not begin with another ingestion pipeline.

The mapping still defines identity, grain, and relationship meaning. Removing ETL removes a copy. It does not remove the data model. Connect a Parquet source.

Inspect the work

Graph plans expose operator work through EXPLAIN and PROFILE. SQL, Cypher, and SPARQL share physical services rather than maintaining language-specific copies. Source-backed responses identify the selected mapping and scan work. Transaction and HA diagnostics identify the database, version, decision, and recovery state needed to operate the system.