diff --git a/CONTEXT.md b/CONTEXT.md index be04657..27d5e11 100644 --- a/CONTEXT.md +++ b/CONTEXT.md @@ -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 diff --git a/README.md b/README.md index 0a14529..4e44d7b 100644 --- a/README.md +++ b/README.md @@ -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? diff --git a/package.json b/package.json index 7628a1e..d1a2006 100644 --- a/package.json +++ b/package.json @@ -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", @@ -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",