Module edge

Module edge 

Source
Expand description

The three values a host hands a pure program at the edge.

A Beck program never constructs an Envelope, a Session or a Proposal — it receives them. §3.7’s replay rule is the reason: “env.at and env.actor are read as data and never from a clock”, which is only true if something outside the program supplies them.

They are built here rather than in the runtime because a Mode B client builds them too. A browser that applies a command speculatively folds it under an envelope of its own, and an envelope with a differently-spelled field is a fold that fails in the browser and succeeds on the server — the exact class of divergence Mode B has to be free of, since its whole claim is that the client runs the same fold (crate::render).

Functions§

envelope
Envelope[Event] — the record a fold sees.
presence
The roster presence() produces: actor to how many connections that actor holds.
presence_of
The roster of a world with one connection: the viewer’s own.
proposal
Proposal — a command and who proposed it, which is what validate is given and the only place a Session reaches (§3.5).
session
Session — who is asking, and what the identity provider said about them.