Imagine a world where any computer can run a complete copy of an Ushahidi instance during a disaster, and these computers can even talk to each other when the Internet is down. With a few tweaks, this is already possible.

Couchbase is a distrbuted database system that gracefully decays in the absence of a network connection. It is batte-tested and ideal for powering a distributed system. By changing some of the backend code, it becomes possible to run many copies of Ushahidi that stay in sync with each other across spotty network connections. One instance of Ushahidi could be run in each neighborhood, or even on individual computers.

Byzantium is a project to make mesh networks easy to deploy in any situation. It is a variant of Linux that does all of the necessary work to set a machine up as a mesh router.

The current plan is to port one table to Couchbase as a test, then gradually transfer more over until Ushahidi is capable of working in a distributed fashion. In the long term it may make sense to replace MySQL entirely, but for now just moving some core functionality into a distributed form would be a big win.

 

 

Current stack is:

 

Components (new and old) are:

 

Things to do: