> where is the service which adds replication, clustering and network interface on top of it?
Actually I would prefer such kind of database (just the engine).
1. Expose it to network via what ever framework you like. Thrift, Rest, grpc, ... You don't have to include different kind of libraries for each network service. I would love to connect to every network service (Redis, Elasticsearch, Cassandra, MySQL, ...) via a single framework (say grpc).
2. In most large scale scenarios, there is already some kind of log service (DistributedLog, NATS, Kafka, ...). Why not take benefit of that for replication? Isn't it great to separate the engine layer from replication layer? Currently we are doing double replication actually. Replicate data from master DB to slave DB. Then replicate the same data, from any DB to cache, search, ... components. The data is already there on log. Let everyone (slave DB as well as cache/search module) consume it. This is basically state machine replication idiom. PNUTS[0], Twitter K/V database, LinkedIn Espresso [1] (as well as Ambry[2] which is their internal object store), ... use this approach for replication.
3. I would agree with that, they only support basic low level operations.
[0] http://www.vldb.org/pvldb/1/1454167.pdf
[1] http://www.csce.uark.edu/~xintaowu/BDAM/p1135-qiao.pdf
[2] http://dprg.cs.uiuc.edu/docs/SIGMOD2016-a/ambry.pdf