playing around with directed acyclic graph reduction
Find a file
2024-02-17 15:37:26 -08:00
crates Make rooms manage state 2024-02-17 15:37:26 -08:00
.gitignore add readme.md 2024-02-11 00:04:48 -08:00
Cargo.lock messing around more 2024-02-16 23:43:04 -08:00
Cargo.toml disable gui/tui for now 2024-02-16 18:15:21 -08:00
README.md update readme 2024-02-16 21:59:38 -08:00

dag-resolve

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?)