Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CONTEXT.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Companion documents:

## In one paragraph

`backend-poc` is a proof-of-concept for a **decentralized backend**: a cluster of
`Conclave` is a proof-of-concept for a **decentralized backend**: a cluster of
equal peer nodes that agree on every change via the **Raft consensus protocol**,
with **no shared database**. Each node holds its own in-memory state machine that
converges by applying the same committed log entries in the same order. On top of
Expand Down
31 changes: 24 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,27 @@
# backend-poc

A proof-of-concept showing how to make a backend **decentralized** by replicating
its state across multiple nodes with the [**Raft consensus algorithm**](https://raft.github.io/) —
no central database. The demo application is a small **library book service**
(add / list / update / delete / borrow / return), but the books are just a
deterministic state machine sitting on top of the consensus layer.
# Conclave

> *A cluster of equal peers that agree on every change — no central database, no single point of authority.*

**Conclave** is a decentralized, database-free backend built on a **from-scratch
[Raft consensus](https://raft.github.io/) implementation** — leader election, log
replication, snapshotting + InstallSnapshot, joint-consensus dynamic membership,
and opt-in linearizable reads. State is a replicated log applied to a per-node
in-memory state machine, so every node converges to identical state through
agreement rather than a shared store. The replicated log doubles as a
**tamper-evident, hash-chained audit trail**, and the consensus layer ships with
built-in observability, idempotency, and fault tolerance.

The demo application is a small **library book service** (add / list / update /
delete / borrow / return), but the books are deliberately incidental — a
deterministic state machine riding on top of the consensus layer. **Consensus is
the real subject.**

> **Why it exists.** This is a study of distributed-systems correctness: how a
> backend stays consistent and available when no single machine is in charge.
> Implemented with the Node standard library only (no consensus/distributed-systems
> dependencies), backed by ~8.6k lines of tests against ~9.2k lines of source, and
> documented as a series of [Architecture Decision Records](./docs/adr/README.md).
> See [`docs/PHILOSOPHY.md`](./docs/PHILOSOPHY.md) for the *why*.

## Why no database?

Expand Down
16 changes: 9 additions & 7 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "backend-poc",
"name": "conclave",
"version": "1.0.0",
"description": "A POC of a Raft consensus protocol in a Node/TypeScript backend, making a library book service decentralized and replicated across nodes with no central database",
"description": "A decentralized, database-free backend built on a from-scratch Raft consensus implementation (elections, log replication, snapshotting, joint-consensus membership, linearizable reads). The replicated log doubles as a tamper-evident audit trail.",
"main": "dist/server.js",
"scripts": {
"build": "tsc",
Expand All @@ -14,22 +14,24 @@
},
"repository": {
"type": "git",
"url": "git+https://github.com/naveed949/backend-poc.git"
"url": "git+https://github.com/naveed949/Conclave.git"
},
"keywords": [
"poc",
"backend",
"consensus",
"raft",
"distributed-systems",
"replication"
"replication",
"decentralized",
"audit-trail",
"state-machine-replication"
],
"author": "naveed949",
"license": "MIT",
"bugs": {
"url": "https://github.com/naveed949/backend-poc/issues"
"url": "https://github.com/naveed949/Conclave/issues"
},
"homepage": "https://github.com/naveed949/backend-poc#readme",
"homepage": "https://github.com/naveed949/Conclave#readme",
"dependencies": {
"cors": "^2.8.5",
"dotenv": "^16.0.3",
Expand Down
Loading