LOOM / 05
Nodes & Network
Browse all chaptersWork can happen on several machines without pretending they are one filesystem. Main coordinates the system; each node still owns its local reality.
A coordinating Main, not a cloud of interchangeable machines
Main owns shared coordination, policy, archive, discovery and knowledge. Workspace nodes host local providers and report local state. In the current architecture, inter-node coordination and sharing route through Main rather than forming an unrestricted peer-to-peer mesh.
A small public edge can provide a reachable network endpoint and ingress without becoming the keeper of canonical LOOM state. External services, including a cloud backup destination, remain external dependencies with their own credentials and availability.
The edge is replaceable.
A typed capability request reaches Main for authorization and routing. The application payload is not part of that request.
This is a coordinating architecture, not a high-availability claim. The preview does not promise automatic Main failover, interchangeable database replicas or uninterrupted operation during a network partition.
Four paths that should not be confused
- Control
- Requests and observations
Private capability calls, policy, node identity and state reporting connect providers to Main.
- Files
- Working data and custody transfers
Configured mounts, watched roots and Lane move or expose selected material under their own contracts.
- Ingress
- An application's public interface
DNS, TLS and a reverse proxy publish an explicitly selected service, not the whole control plane.
- Recovery
- Off-host retained history
Backup traffic sends selected recovery material to a configured destination; it is not a live sync mount.
For the illustrative research-sync project, a laptop can ask Main for application status without transferring its library. A Lane send transfers a selected file batch under a separate operation. A research client accessing the published WebDAV endpoint follows yet another path, governed by the application's authentication.
Use existing infrastructure, give it a coherent role
The backend is written in Go, with a daemon and node-agent components. PostgreSQL supplies durable state on database-capable nodes. Nix and NixOS describe packages and the reference service configuration, so service identities and runtime dependencies can be reviewed alongside the application.
WireGuard is the selected private network substrate, with a small replaceable public endpoint. Caddy is the selected reverse proxy and TLS ingress. Borg handles cloud archive history. LOOM integrates these systems; it does not claim to have invented their networking, database or backup mechanisms.
The reference service host is x86_64 Linux with NixOS. macOS serves as a development and workspace client. Package or development-shell availability on another architecture is not proof that every optional runtime component is supported there.
Node enrollment, keys, addresses, mounts, service identities and credential references are operator configuration. The public example host deliberately uses synthetic values. Applying it unchanged to a real machine is not an installation procedure.
A missing machine is still missing
An observation of a node is not a live view forever. Disconnection, stale status and unavailable providers need to remain visible. A remembered path does not prove its files are currently reachable, and a past successful desktop capture does not prove the Mac is online now.
Paired Mac computer use uses its own bridge and permissions. A shared browser and normal SSH are different surfaces. They should not be silently substituted for one another when a requested connection is unavailable.