playing around with directed acyclic graph reduction
crates | ||
.env | ||
.envrc | ||
.gitignore | ||
Cargo.lock | ||
Cargo.toml | ||
README.md |
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?)