Current implementation: the shared-RAM contract and engineering record
Choose the vendor and the contract.
The vendor supplies a RAM host, a schema and a binding. Its host may run locally or on an Internet-reachable machine. Reachability, access, lifetime and persistence are deployment decisions. The application addresses state in that region.
Use a host you control or a region whose operator has given you its connection details. This site is not an offer of an anonymous production RAM service. Region composition and policy explain the deployment choices.
The smallest useful program.
Choose one truth each participant owns. Write that state. Read the state the other participant owns, then hold a read for changes. Start with a price and a sale: a price is one rewritten cell; a sale is one cell per record. Those two address choices explain latest state and distinct state without another backend.
The earlier FrogChat demonstration used recipient cells and a blocking read, with a published 471-line client count. That is a historical implementation count. A shared recipient slot can replace an earlier value when multiple writers race; use distinct owned addresses when every line must remain observable.
Progress to a held application view.
Keep the table your participant needs and update it on held-read wakes. Answer local queries from that view. Publish your applied mark so another participant can know what has been incorporated. Test the program by killing and restarting a participant, then inspect the state and the mark.
Keep the networking underneath.
C++ and Python clients use the shared library’s permanent-session and semantic transport machinery. The supplied JavaScript guide exposes the same programming rules. The Kotlin FD&F member is an independent RAW-protocol client; its purpose is network membership.
When the program needs ordinary packet connectivity to services inside a pond, add FD&F membership separately. Shared-memory access and routed access are different capabilities.