A TypeScript consensus toolkit

Many nodes.
One shared
state.

Independent by nature.
Together, by agreement.

Open source. Built with Bun. Made to be explored.

A CONCEPT, IN MOTION

Select a node. Move the leadership.

Illustrative interaction · The real cluster is in the Observatory.

A LITTLE COORDINATION. A LOT OF POSSIBILITY.

01 / THE IDEA

Agreement isn’t magic.
It’s a sequence.

Raft makes the journey from an individual proposal to shared state something you can build, inspect, and understand.

01

A leader emerges.

Leader election gives the cluster a place to coordinate. When leadership changes, a new term begins.

02

A proposal travels.

The leader proposes an entry. Members replicate it in their logs, working toward a quorum.

03

State moves forward.

Committed entries are applied to state machines. The shared history becomes something useful.

Inside the architecture

02 / THE OBSERVATORY

See the invisible.

Every election. Every instruction.
A live view into a distributed world.

RAFT OBSERVATORYFIVE NODES. ONE SHARED STATE.1080P / 01:00
Real dashboard. Real operations.Download film

Follow the leadership.

Watch elections, transfer leadership, and explore what happens when nodes stop or networks split.

Trace an instruction.

Send a node report or SHA-256 probe. Follow commitment, destination execution, and the actual response.

Read the pulse.

Inspect per-node RPCs, response latency, and replication lag, streamed to the interface with SSE.

BUN + REACT + TAILWIND + SHADCN/UIExplore the playground

03 / THE ECOSYSTEM

Small pieces.
Shared purpose.

A consensus engine at the center.
A family of packages around it.
Pick your point of entry.

04 / YOUR TURN

Make room
for agreement.

Start with a question.
Open the playground.
See where the nodes take you.

Read the quick start
YOUR NEXT EXPERIMENT
bun install --frozen-lockfile
bun run build
bun run --cwd packages/raft/playground dashboard
From a cloned checkout

Bun 1.4.3+ and Redis on localhost:6379. Then open the Observatory at localhost:3210.