Crux - bi-temporal schema-less document database

Crux is a general purpose database with graph-oriented bitemporal indexes. Datalog, SQL & EQL queries are supported along with Java, HTTP & Clojure APIs. The Datalog query interface that can be used to express complex joins and recursive graph traversals.

Getting Started

Follow the Crux Earth Assignment Tutorial, in either the self-contained Next-Journal environment or as your own Clojure project.

Using the Clojure CLI tools and practicalli/clojure-deps-edn configuration, create a new project:

clojure -X:project/new :template app :name practicalli/crux-demo

Using the Leiningen build tool, create a new project:

lein new app practicalli/crux-demo

Install Crux as a library in a Clojure project or use the pre-built dockker image.

Note: to have more than one set of tabs in a page, simply create unique id's for the tabs, e.g. practicalli2

Experiment with the Crux-labs workshop project, which contains examples of using Crux.


Unbundled architectural overview

Crux follows an unbundled architectural, decoupled components communicating via an immutable log and document store. crux-rocksdb is the high performance default data store, with a range of storage options available for embedded usage and cloud scaling.

Crux embraces the transaction log as the central point of coordination when running as a distributed system. Use of a separate document store enables simple eviction of active and historical data to assist with technical compliance for information privacy regulations.

This design makes it feasible and desirable to embed Crux nodes directly within your application processes, which reduces deployment complexity and eliminates round-trip overheads when running complex application queries.

Crux - unbundled architectural overview

results matching ""

    No results matching ""