I am mostly convinced that writing a generic reader and writer interface that is oblivious to the data store is inherently hard. @fourk and I had some discussion about using a sham layer for data store (call it DBModel for lack of better name). It got so complicated. (Openstack ceilometer tried to do this and I am of the opinion that it is a pretty convoluted code).  Anyways, I think we should really scope ourselves to Cassandra as data store and things are much simpler.