Distributed Sync Future

Status: Proposed (not yet implemented)

Context

Users with multiple machines or collaborating teams may want to sync vaults. SPEC-004 Distributed Sync proposes a design using a Spritely Goblins sidecar communicating via OCapN (Object Capability Network).

Design overview

  • zetl stays pure Rust for all local operations
  • A Guile Scheme Goblins sidecar handles networking, capability-based access control, and sync
  • Communication between zetl and the sidecar uses JSON-RPC over Unix domain sockets
  • Files remain the source of truth — sync is delta-based with explicit merge
  • Capabilities (not passwords) control access via sturdyrefs

Why a sidecar?

  • Keeps zetl’s core free of networking dependencies
  • Goblins provides battle-tested capability security (OCapN/CapTP)
  • The sidecar is optional — zetl works fully offline without it
  • Aligns with decisions/Local-first Design: network is opt-in, never required

Current status

This is a future direction. No implementation exists yet. Research spikes are planned for Syrup serialization in Rust, Goblins sidecar prototyping, and conflict detection accuracy.

Deliberate gap

This page has no SPL facts — modeling the zetl reason why-not use case. Running zetl reason why-not "distributed-sync-ready" would show that no facts support this conclusion because the feature doesn’t exist yet.

See also: decisions/Local-first Design, SPEC-004 Distributed Sync

Backlinks