28Jun2016

Database Development: RethinkDB is a modern database for real time Web

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.

Installation

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

Technically, the database is a set of tables. A table contains documents similar to MongoDB. JSON is used as representation of the nested structure of a document. There are 4 official drivers for RethinkDB: python, ruby, java and javascript for node.js. If you use other programming language, there are a lot of community-managed drivers based on JSON protocol.

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.

Read more