playing around with directed acyclic graph reduction
Find a file
2024-02-26 22:31:11 -08:00
crates Try to improve server and work around async 2024-02-26 22:31:11 -08:00
.gitignore add readme.md 2024-02-11 00:04:48 -08:00
Cargo.lock Try to improve server and work around async 2024-02-26 22:31:11 -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?)