Skip to main content
Open-source distributed SQL

Scale with your traffic, without giving up transactions

CamusDB partitions data, replicates every write by consensus, and runs Serializable transactions by default, while your application uses familiar SQL

Jepsen-tested with CaraxesActively used in production — some features are still young

Multi-active accessEvery cluster node can expose the database API.
Serializable by defaultTransactions coordinate atomic writes across partitions.
Copy-on-write branchesTest changes without writing to the source database.
In-process C# extensionsRun reviewed .NET functions, triggers, and procedures inside the server.

Why look closer

Four practical reasons to explore CamusDB

Scale

Spend less time on sharding logic

CamusDB partitions data and routes each write to the leader of the partition that owns its key range.

Correctness

Keep concurrency rules in the database

Committed reads, conflict detection, and Serializable transactions help protect application invariants.

Extensibility

Run business logic next to the data

Load reviewed C# code into the server as SQL functions, row triggers, and transactional procedures. Every microservice and every operator session then follows the same rules.

See it in SQL

Explore real CamusDB workflows

Serializable is the default. Make it explicit when two updates must behave as one atomic transaction.

Read the consistency guide
Commit related writes togetherConsistency
BEGIN;
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;

UPDATE accounts SET balance = balance - 100 WHERE id = "A";
UPDATE accounts SET balance = balance + 100 WHERE id = "B";

COMMIT;

See the tools

Query and operate from the browser or the terminal

Web Console: Query from the browserWeb Console: Query from the browser
Query from the browserBrowse schemas, run SQL, and inspect results in the Web Console, without a SQL client on each machine.
Read the Web Console guide

Evaluate it for yourself

See whether CamusDB fits your use case

Run the server locally from NuGet or Docker, or deploy a cluster with the Kubernetes Operator. Then follow the tutorial and review the current scope.