Current implementation: the shared-RAM contract and engineering record
One address. One current value.
Use the three-coordinate key to identify one truth. The owner replaces its value when that truth changes. A write-order id names the memory’s publication order. A separate cell for each event provides distinct state; repeatedly rewriting one cell provides latest state. The distinction comes from the address, not a second transport.
| Truth | Addressing | Reader behavior |
|---|---|---|
| Latest value | One owned cell, rewritten | A slow reader receives the latest value, not a backlog. |
| Distinct state | One cell for each record | Read records past the reader’s write-order mark. |
| Collection | One cell per element | A partial address selects the table; the instance names the element. |
| Container | Part cells, then a header | The owner publishes the visibility marker after the parts. |
| Reference | A tuple name in a cell | Read the referenced state instead of making a second copy of its truth. |
A held read is part of the contract.
A reader can ask for state past an id and wait at the host until the condition can be answered. This replaces an application polling loop. It does not make every interface in the legacy FrogNet tree event-driven: some wrappers and compatibility paths still have their own limitations.
Freshness is a read selection. An old cell need not be deleted by a timer to stop being eligible for a fresh read. Session-bound FD&F membership is a different contract: the RAM manager removes its announcement and mappings when the session ends.
RAM is not a replication promise.
The Living Network’s transient memory host is selected from eligible members. If the host or the connected scope changes, the applications must treat the new memory world according to their recovery contract. They reassert their own truth and read the new world. There is no general promise of replicated copies, merged application histories or restoration of the old RAM.
An Internet RAM vendor can choose persistence and recovery policy in its own region implementation. That choice is additional to the shared-state programming contract. Read the explicit boundaries.
Use the surface deliberately.
Read and hold the truth your participant needs. Keep collections as element cells. Publish a container’s header last. Give foreign systems one truth owner. Derive totals and liveness from state instead of maintaining a second, stale copy.
Read the programming guide →