diff --git a/README.md b/README.md index bb9bbb6..a1c5486 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,16 @@ # dag-resolve -Playing around with directed acyclic graph reduction. Actors send events -to a dag, which is a crdt that's replicated between nodes. The events -are then resolved into a state; an ad-hoc database with tables/indexes. +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?)