RFC: client first webnative data flow
Drawing inspiration from fission.codes and what they have shared so far about their edge db: dialog,
i spun together color-schemes as a dataflow mockup using wnfs.
I use this issue to invite feedback and document the design and implementation process.
To tuple or n2tuple
that is of course, not the question.
The question is what is n?
The brilliant simplicity of a "datalog" with n=3"Triples have a curious property; with just these three columns, they can describe any kind of information!" ~STEPAN PARUNASHVILI
Datomic's Datom with n=5https://docs.datomic.com/cloud/whatis/data-model.html
Transaction ids are themselves entity ids, so transactions can have datoms that describe them. Datomic assigns a :db/txInstant for every transaction, so every datom knows the wall clock time it was added.
"removing" occurs not by taking something away, but by adding a retraction.
We do not need also to retract the old value; since :inv/count is :cardinality/one, Datomic knows that there can only be one value at a time and will automatically retract the previous value
bygonz multi-agent time-stamped content-hashed n=6
ts + ag provides more info than datomic's tx id
ha provides deterministic content addressability and collision avoidance
via a compound tx key: ts_en_ha (eg. 1660159982664_0ceb354226c_df9bc80577b)
See core question #4 for considering if it is wise to leave out what datomic terms 'op'
How to support multiuser data sharing without centralization?
How to support reliable history tracking with configurable granularity?
How to support client-first, often offline user centered "far-edge" data flows?
In what situations is an "op" field critical for a functioning datalog?
How to support developers in our demand for fast and easy queries of aggregate states?
Is one file per attribute change (broadcast to IPFS/IPNS) a reasonable strategy?
Is fragmenting by "entity type" an anti pattern for the datalog strategy ?
How to deal with bitemporality (as offline agents will propose merging data later than it is first recorded) ?