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 whatvalidateis given and the only place aSessionreaches (§3.5).- session
Session— who is asking, and what the identity provider said about them.