Communication

How peers find each other and move data. Tally prefers a direct encrypted peer-to-peer channel and falls back to its own relay when that can't form — but it never trusts the transport for authenticity; that's Security's job.

The connection path

What flows

Outbound messages queue in the outbox and travel as encrypted envelopes. When two peers connect they sync — reconciling their ledgers so a reconnecting or recovering device catches up. Transport-only messages (ping, sync, receipts) are distinct from durable records and carry no authorship.

The server's two jobs

One Node process does both serving the app bundle and being a relay, but they are deliberately different roles, and a deployment may one day split them. That separation is also what makes secondary relays possible: a relay you add in settings serves no app, and the relay that served your app is just the one you get for free. Neither role stores user data — the relay holds only presence and a short queue of undelivered envelopes it cannot read.

Go deeper

Peer communication protocol — the message-by-message specification. Code lives in app/js/peer/, app/js/signaling/, and server/; how it is built and shipped is Build & runtime.