Architecture

Epheme Architecture — Vision, Components, and Evolving Plan

Epheme is a set of constraints and primitives that enable applications to be local-first, privacy-respecting, and interoperable. This page documents the conceptual model, core components, data formats, sync model, and the pragmatic tradeoffs we accept as the project evolves.

Conceptual Model

At its core, Epheme treats the user's device as a first-class runtime and authority. Applications are collections of signed, append-only objects that can be stored locally, optionally replicated to trusted hubs, and synchronized with peers under explicit user control.

Core Components

Data Formats

Simplicity and auditability guide our choice of formats:

Sync Model & Conflict Resolution

Synchronization is optional and layered:

  1. Local-first: app continues to function offline with local authoritative state.
  2. Hub replication: devices may choose to push/pull signed objects to one or more trusted hubs.
  3. Peer sync: direct device-to-device replication via ephemeral channels or invited peers.

Conflicts are resolved with a combination of CRDTs for commutative data, last-writer-sane-timestamp for simple fields, and explicit human merge for complex edits.

Security & Privacy

APIs & Integration Points

Surface a small set of primitives in `@epheme/core`:

Roadmap (evolving)

  1. V0: Core primitives + local-first demo apps.
  2. V1: Hub reference implementation and replication tests.
  3. V2: Cross-device discoverability and optional federation UX.
  4. V3: Polished APIs, policy tools, and community adapters.

Tradeoffs

Choosing Epheme’s constraints means accepting limits:

How This Page Evolves

This page is a living document — as prototypes reveal practical concerns, APIs and formats will adapt. The Dev Journal and repository issues will track design decisions and experiments.

Back to Home