- PostgreSQL for the user database since it maps nicely to django and sqlalchemy models
- Redis for caches and non persistent data
- Riak for everything else
We love the fact that it is easy to scale, that bitcask is safe (it writes to disk:-p) and easy to backup (rsync or cp is enough).
Riak fits the bill very well, though we did need to make a few mods to workaround certain problems. But it's Erlang/OTP, fairly small code-wise, and easy to modify.
http://wiki.basho.com/Pre--and-Post-Commit-Hooks.html
But I assume you mean these post-commit hooks update other indices stored outside of Riak.
When I have time, I'll add distributed counter support to Riak and take over the world. (Let's count everything. In real time with massive concurrency, full historical resolution, and no single points of failure.)