The unbundled database with temporal graph query

THE FOUNDATIONS

Open

Unbundled Database

Crux is an open source (MIT License) database with an architecture turned inside out, allowing you to combine pluggable components and avoid lock-in across the underlying technologies.

Get started with a basic configuration embedded within your application and upgrade when needed to use Apache Kafka and RocksDB for storing, indexing and querying across terabytes of documents in a scale-out cluster.

Time

Bitemporal Time Machine

Record the true history of your business whilst also preserving an immutable transaction record - this is the essence of bitemporality. Unlock the ability to efficiently query through time, as a developer and as an application user. Crux enables you to create retroactive corrections, simplify historical data migrations and build an integrated view of out-of-order event data.

Bitemporality is built-in to the very core of Crux, which means it is managed by default, to keep your life simple and give you full control over the history of your data.

Store

Transactional Document Graph

Crux is a document-oriented database that makes your data available for graph-like Datalog queries without the need for an upfront schema. Widely proven durable storage technologies such as Apache Kafka are used to safely persist your data whilst providing ACID transaction guarantees at scale.

Datalog gives you a simple format to express powerful and complex questions about your entire database. Your questions are answered using facts extracted from all of your implicitly interrelated and interconnected documents.

THE ARCHITECTURE

USE CRUX

Transact with Documents

Four simple transaction operations enable you to work with your data as documents:
Put, Delete, Match, Evict

Your documents are automatically indexed as a graph of entities for use during queries. Each operation also supports additional temporal coordinates for modifying the history of document versions. No schema is necessary and your documents only require an ID field.

					    [["crux.tx/put",
  {"crux.db/id": "john-mccarthy",
   "first-name": "John",
   "last-name": "McCarthy",
   "birth-date": "04-09-1927"}]]
					    
					

Query the Graph

Declarative queries expressed in Datalog enable you to efficiently analyse your graph of semi-structured documents, powered by a lazy join algorithm and recursive rules. This simple format is expressive and facilitates the composition of complex questions about your entire database.

Datalog is a credible alternative to SQL, with long-established industry usage and broad academic interest. At its core is the unification of logic variables that pattern-match over a database of facts and predicates using recursive rules.

A full SQL query implementation is also provided with bitemporal support.

					    {:find [?last-name]
 :where [[?person :first-name "John"]
         [?person :last-name ?last-name]]}
					    
					

Evict for Compliance

Legal regulations often pose a challenge when designing systems around immutable data, therefore the ability to efficiently "evict" individual document versions is provided as a core feature.

Comprehensive auditing and data eviction facilities help you to facilitate your organisation's compliance with data protection policies and requirements relating to the retention of sensitive data.

					    [["crux.tx/evict", "john-mccarthy"]]
					    
					

TRUSTED BY