RethinkDB is an open-source scalable database for what its makers call "the real time web", but what does real time data supply mean in terms of the way web-centric applications function today?
Version 2.0 will contain options for commercial support, no surprise there - all "production-ready" open source is pushing for commercial.
New database access model
What the firm is eluding to with its use of the term real time is that is software utilises a new database access model that continuously pushes data to applications in real time.
This release of the software is the culmination of 16 major releases and five years of development.
The firm claims to have a community of more than 400 contributors.
So how and why real time in this instance?
According to RethinkDB CEO Slava Akhmechet:
"Traditional databases use a query-response database access model.
While this system works well on the web, since it maps directly to HTTP's request-response, adapting database systems to real time needs still presents a huge engineering challenge.
Modern marketplaces, streaming analytics apps, multiplayer games and collaborative web and mobile apps require sending data directly to the client in real time
In the past, building real time apps was out of reach for many companies, which lacked the necessary resources. RethinkDB makes it possible for any company to build real time apps by providing a painless way to push that data to the apps."
The new release features capabilities to push JSON objects to apps in real time -- this open-source database pushes data through the `changes` command.
'Dozens' of languages supported
With RethinkDB 2.0, developers can use languages including Python, Ruby, Node.js.
It can also integrate with Angular.js, React or other frameworks via technologies like WebSockets or SignalR.
The database toolset here for developers means that users can express data relationships using distributed joins, build location-aware apps, store multimedia and time series data, do analytics with map/reduce and run sophisticated aggregation commands, along with being able to speed up apps using flexible indexing.