havn systems · realtime infrastructure

havn-server.

Rust collaboration and media services: deterministic merges, live transport, and durable state.

The infrastructure that lets shared work stay shared, without pushing merge logic or transport concerns into the product surface.

Read the shape
packagehavn-server · Rust
havn / havn-server connected
havn-server — realtime infrastructure marketing visual

havn-server is the part of Havn that keeps multiple people and agents working on the same thing at once. It carries edits, resolves them deterministically, and holds the durable state the canvas points at.

It is deliberately not the product. It moves bytes and merges intent so Board can stay a calm surface and Kernel can stay a pure foundation.

See it in the architecture

Collaboration leaks into everything if you let it.

When merge rules and socket lifecycles live in the UI, every feature has to reason about concurrency. State becomes hard to test and impossible to reason about offline.

havn-server keeps that concern in one place. The surface sends typed operations; the service guarantees every participant converges on the same result.

Small boundary.
Large surface area.

Deterministic by design

CRDT merges over an op-log mean every client lands on the same state.

Transport that recedes

WebSocket and gRPC are handled once, behind a typed edge.

State that lasts

Durable storage and media services keep shared work available after the session ends.

Convergent collaboration

A Yjs-over-oplog transport joins live editing to a durable operation log.

  • ↳CRDT document model
  • ↳op-log persistence
  • ↳presence + awareness

One realtime edge

Clients speak WebSocket; services speak gRPC; the boundary stays typed on both sides.

  • ↳WebSocket sessions
  • ↳gRPC service mesh
  • ↳backpressure-aware

Media + storage services

Image generation, link previews, and blob storage sit next to collaboration instead of inside the app.

  • ↳image services
  • ↳object storage
  • ↳durable board state

How the layer
moves.

Every surface in Havn has a job in the loop. This one keeps its responsibility clear, then hands the work to the layer that comes next.

Connect

A surface opens a session and declares what it is editing.

Send

Typed operations flow in from every participant.

Merge

The service resolves them deterministically into one state.

Persist

The result is stored and replayable for anyone who joins later.

Nothing here
stands alone.

havn-server is useful because it has a precise relationship with the other layers. Follow the handoffs and the product gets easier to understand.

Keep shared work convergent without touching the surface.

havn-server is the realtime spine of Havn: deterministic merges, one transport edge, and durable state the product can trust.