Nowadays, almost all applications are asynchronous multi layer systems linked together via events scheme. One module of the system subscribes on events produced by another part. It’s regular Listener pattern. We have been designed and implemented a lot of applications in this way, but all of them are placed in the middle layer or UI side. It would be nice to have similar functionality on the data layer of persistent storage. Redis [http://redis.io/] as a Database Development system provides Listener approach out of the box. But Redis is in-memory key-value storage. It’s used rather as cache. There is RethinkDB database [https://www.rethinkdb.com/] supported Listener pattern and used as clustered document storage like MongoDB.
RethinkDB is open-source. There are installation packages available for all major platforms. On the other hand, it would be better to use docker container:
docker run -d -P –name rethink1 rethinkdb
RethinkDB has out of the box sharding and replication clustering. You can configure a cluster via Web UI administration console. Last one can be used for monitoring, as well.