CQRS
It sounds simple right? You just separate your commands from your queries. Somehow it seems like all of the solutions out there are really complicated or really slow. We thought there had to be an easier way.
A Command Database
There are tons of great query databases out there. MySQL, Postgres, Mongo, <insert your favorite here>, etc. We don't need to reinvent that wheel here. What is lacking is a super simple command database that is highly available and super reliable and a way to move data to the query databases. This is where we come in.
Committeddb is a highly reliable commit log which distributes data through the RAFT consensus algorithm to a sequential Write Ahead Log (WAL). Writes are only accepted with quorum consensus and are stored with guaranteed ordering.
Querying from a WAL is pure madness. There is just no way to do it performantly so instead committeddb makes it extremely efficient to stream data to one or more query databases. Right now we support MySQL, but the architecture makes it very easy for us to add additional query databases in the future. One of the core features of committeddb is the sycable which transports the data to the query database(s). You create some simple instructions which contain database information and transform instructions and committeddb will stream data from the WAL to the query database keeping your query database fully in sync with your commit database.
So put your data in committeddb we'll take care of the synchronization for you. With a syncable you can even transform the same command multiple times to let you support as many different types of performant queries as you need.
← Intro Replication→