📄️ Model of Computation
Rosia is a variant of the reactor model of computation. A program is a directed graph of nodes that communicate through ports. Each node runs in its own process. All ordering and synchronization is
📄️ Logical Time
In Rosia, logical time is the timestamp system used for ordering and synchronization. It is up to you to control logical time within each node, and Rosia will take care of execution and synchronization across nodes.
📄️ Safe To Advance To (STAT)
Apart from logical time, each node also maintains a Safe To Advance To(STAT) time value. STAT acts as a safeguard for the increase of logical time: the node's logical time is only allowed to advance to $t \lt \text$. For
📄️ Eager Reactions
In feedback loops (e.g., A → B → A), a normal yield can deadlock: the yield waits for STAT to advance strictly past the target time, but STAT depends on a message that can only be sent after the yield returns. This is a causality