Real-time web apps: Has RethinkDB's moment arrived?


RethinkDB CEO Slava Akhmechet attributes the rise of this scalable JSON database, used by more than 100,000 developers worldwide, to the shift to real-time web applications, for which it has been explicitly designed.
"We generate a lot more data than we used to and we want to see it faster. People have got used to the experience on Facebook and Twitter and now everyone wants to build more reactive, more responsive, more real-time applications," he said.
"Remember the Ajax revolution - when Ajax allowed people to build websites so you didn't have to reload the whole site. That was a huge thing, and now it's happening again with WebSockets. People are pushing data to the web browser in real time."
Interactive comms protocol WebSocket allows web services to do just that. The standard has been around since 2011 but most browsers implemented it only relatively recently.
A familiar example of that real-time experience is Google Docs, where those with access to a document can watch it changing as members of their group make modifications.
"There are tons of collaborative applications and multiplayer games where that kind of behaviour happens. The development stacks are being retooled from traditional long-polling architectures, which are hard to build and hard to scale and hard to maintain," Akhmechet said.
"Traditionally, what was happening was you had to poll the data store for its data. You had to pull the data out of the database. That doesn't work so well anymore for applications where you push data through the browser."
According to Akhmechet, although popular tools such as the React JavaScript library from Facebook and the AngularJS framework from Google have helped developers build real-time web apps, little has occurred on the database front to assist them.
That was the impetus for RethinkDB co-founder Michael Glukhovsky and Akhmechet, who started out developing custom databases for high-frequency trading on Wall Street, to create a document store that allows data to be pushed to applications in real-time.
"RethinkDB started as an experiment. We just thought, 'Hey, what would happen if we built a database that supports this new architecture?' - and it worked really well," Akhmechet said.
"The way it works, instead of writing a query to get the data and then running it again and again every few seconds, the user subscribes to the data. So they say, 'I'm interested in this query'.
"Then, any time something changes in the database, it pushes a notification to the developer saying, 'Hey, the data has changed. Here's a new result'. What that does is make building and scaling real-time applications dramatically easier."
That approach of pushing, as opposed to pulling data, is not one used by other databases, Akhmechet said.
"The reason no one else does that is because near real-time applications are new and the technology to allow pushing data to the browser only matured very recently. It's a new thing that's happening," he said.
"In general, real time is becoming very popular and all the development tools around it have become mature quite recently but the databases haven't."
As well as a widening community of contributors to the open-source database project from around the world and what Akhmechet describes as a rapidly growing number of users, RethinkDB is starting to be deployed in production in various use cases, including some at Fortune 500 companies.
Among firms using it is collaboration specialist Jive Software, which built a real-time chat platform on top of RethinkDB.
The database has been available via Amazon AWS since 2013 and on Compose before IBM's takeover in July and decision earlier this month to take hosted RethinkDB out of beta and into general availability.
"It's very significant. When RethinkDB support on Compose was in beta, a lot of startups felt confident to use that cloud offering. But a lot of the enterprises didn't," Akhmechet said.
"With IBM now supporting RethinkDB officially, a lot of our enterprise customers now feel confident that they could use that service. They have multi-year contracts and they're looking pretty far out and it's important for them to know that the technology will be around for a long time. This official support gives them that confidence."
A lot of the earlier development of RethinkDB was aimed at robustness and performance. For security, the focus has been on integration with existing mainstream security tools.
For the moment, the RethinkDB company is offering client services such as online and onsite training, and real-time development and production support.
"From here, we're going to start building more software services around RethinkDB - things like backup monitoring. There are a lot of auxiliary services that people want to pay for and all of that is in the pipeline," Akhmechet said.
More on databases
- Amazon's MySQL database challenger Aurora exits preview
- IBM acquiring Database-as-a-Service provider Compose
- MariaDB plucks LinkedIn database vet Nishant Vyas for CTO
- Couchbase NoSQL Database gets the SQL Religion
- Oracle and Mirantis put Database 12c on OpenStack private clouds
- Watson Analytics Pro rolls out with added database, collaboration support
- Google's Bigtable goes public as a cloud managed NoSQL database
- Basho's Riak 2.1 database zooms in on better write speeds