Skip to main content

Protocol Specifications

Draft specifications

Maturity: All Faberio protocol documents on this site are draft specifications. They define intended runtime behavior but are not yet validated by a reference implementation. Expect revisions during Phase 2 (reference Runtime) and Phase 3 (multi-node validation).

Current status: Runtimes are planned deliverables — not yet available.

These documents define the Faberio Protocol — the open, implementation-neutral contract for independently operated runtimes. They describe how nodes and users are expected to behave once a compatible Runtime exists; they are not documentation for a shipped product.

License: Protocol specifications and this documentation are published under Creative Commons Attribution 4.0 (CC BY 4.0). Reference Runtime and SDK source code will use Apache License 2.0. See Introduction — Licensing.

The reference Laravel Runtime (server, PC, laptop), NixOS module, and Community Hub demo described in the Implementation Roadmap will implement and validate these specifications. A Flutter Runtime for mobile devices is planned separately (Phase 4).

For positioning relative to other sync and self-hosting projects, see Related Work.

Maturity

DocumentMaturityNotes
Object IdentifierDraftFoundational — read first
Identity ModelDraftNodes, users, groups, devices, keys
Node DiscoveryDraftInformation spaces, membership
Node ConnectivityDraftP2P transport, NAT traversal, STUN/TURN policy
Distributed DatabaseDraftApplication-facing replicated data
Distributed File StorageDraftApplication-facing replicated files
Data Access ControlDraftPolicies, approval, replication modes
MessagingDraftRuntime-internal only
RPCDraftRuntime-internal only

Draft means the specification is published for review and implementation planning, but no conforming Runtime has completed full validation yet.

Reference MVP coverage

The specifications describe the full platform target. The Implementation Roadmap — Reference implementation milestones defines what the first Laravel reference Runtime (Phase 2–3) is expected to implement and validate. Use this table to see which spec areas are in scope for that MVP versus deferred work.

Spec areaFull protocol (draft spec)Reference MVP (Phase 2–3)
Object IdentifierUUIDv7 for all stored objectsM1 — UUIDv7 for all stored objects
Identity ModelNodes, users, groups, devices, Ed25519 keysM1–M2 nodes and users; M3 Community Hub flows; groups optional
Node DiscoveryInformation spaces, membership, admin approval, export/migrationM1 information spaces and membership; M2 admin approval for server nodes
Node ConnectivityP2P, NAT, STUN/TURN policy, degraded modeM1–M2 simplified peer connectivity between server nodes
Distributed DatabaseFull replication model, CRDT merge, flexible sync (planned §9.4), export/backupM1 MongoDB local engine; M2 node-level replication; M3 Community Hub tables; CRDT on concurrent updates; peer snapshot recovery
Distributed File StorageFull file replication, CRDT content merge, export/backupM1 local engine; M2 node-level replication; M3 Community Hub attachments
Data Access ControlPolicies, source-side auth, user- and node-level replication modesM2 platform policies; M3 Community Hub paths; node-level replication auth
MessagingChange notifications, sync requests, conflict signalsM2 DB + FS replication transport; M3 Community Hub workloads
RPCfetch, snapshot, compare, verify, resolveM2 DB + FS replication RPCs (fetch, snapshot, compare as needed for node-level sync)

Deferred capabilities remain normative in the draft specs for Phase 4 and later hardening. Gaps found during reference implementation feed back into spec updates.

Reading order

Read in this sequence — later documents assume concepts from earlier ones:

  1. Object Identifier — UUIDv7 for all stored objects
  2. Identity Model — cryptographic identity for nodes and users
  3. Node Discovery — information spaces, membership, approval
  4. Node Connectivity — P2P transport and NAT traversal
  5. Distributed Database — replicated structured data
  6. Distributed File Storage — replicated files
  7. Data Access Control — policies, approval gates, replication modes
  8. Messaging — runtime-internal (not for applications)
  9. RPC — runtime-internal (not for applications)

Steps 8–9 describe runtime-internal protocols used to implement replication. Application developers normally start with steps 1–7 and the Introduction.