2024-02-11 08:04:48 +00:00
|
|
|
# dag-resolve
|
|
|
|
|
2024-02-17 05:59:38 +00:00
|
|
|
Playing around with protocol design yet again.
|
|
|
|
|
|
|
|
## architecture
|
|
|
|
|
|
|
|
Rooms resemble an event-sourced database, or the elm architecture. The
|
|
|
|
main difference is that like matrix, the events form a directed acyclic
|
|
|
|
graph (dag) and is replicated across nodes. The root event defines
|
|
|
|
hashing and signing algorithms, along with a resolver. The resolver
|
|
|
|
implements access control, tiebreaking, and defines a `(prev_state,
|
|
|
|
event) -> new_state` function.
|
|
|
|
|
|
|
|
This is currently a work in progress and there are definitely some
|
|
|
|
undecided things, eg. how the state is represented (currently a key/value
|
|
|
|
table, but maybe a relational or graph database could be good?)
|