Last edited: April 17, 2019
The Staging Area is a way to experiment with Datomic edits and transactions in a safe way, without actually altering the database. This is implemented with datomic.api/with. Any valid Datomic transaction is valid in the Hyperfiddle stage, including schema. You are encouraged to edit the stage directly or copy/paste transactions into it.
Datomic stage after editing a table cell
UI widgets emit Datomic statements
Hyperfiddle generated UI implements the Datomic information model. Widgets are aware of Datomic schema and describe edits as Datomic transactions.
Hyperfiddle never transacts
All edits generated by Hyperfiddle go to the staging area.
The only way Hyperfiddle can transact is if you click the transact button above the stage. We will never transact automatically. As such Hyperfiddle works against a read-only Datomic database.
The Hyperfiddle IDE (on the right) is a second Hyperfiddle application "domain" with it's own stage. Fiddles are data and stored in Datomic. Often the IDE-domain and the user-domain are configured to share the same databases, but not necessarily. If the IDE- and user- domains share a database, the IDE stage is applied first, and then the user stage.
Uses browser localstorage
Stage state is backed by browser localstorage, not the server. It is synced across session tabs but is not visible to other users. The Hyperfiddle web client will send up the stage state to the server with each request, and the server will apply it with datomic.api/with.