RethinkDB has released version 2.3 of its open source database, bringing updates to JavaScript drivers and network encryption.
In the blog post RethinkDB 2.3: user accounts, network encryption, Windows support developer evangelist Ryan Paul says by including TLS support, the update -- named Fantasia -- enables "encryption on the wire for both the client driver protocol and communication between database servers in a cluster."
V2.3 also "brings encryption to RethinkDB’s web-based administrative user interface, which you can now access with an HTTPS URL," Paul says, explaining that unlike traditional RethinkDB deployments there's no longer a need to run an application server within the same closed network as the database servers.
The JavaScript drivers for the Fantasia release of the distributed database include new variants of the cursor.eachAsync
function, where previously if a developer closed a cursor through cursor.close(), the database didn't call any callbacks to indicate that the cursor had been closed.
Also updated in the JavaScript drivers is a new concurrency
option for cursor.eachAsync
and updated r.min(a, b)
r.max(a, b)
variants, instead of writing r.expr([a, b]).min()
developers can now write r.min([a, b])
and r.max([a, b])
.
InfoQ announced in February that RethinkDB had launched a Windows port of their database, functionally equivalent to its Linux and OS X counterparts. In the Fantasia release, the recently-introduced Windows port is officially in beta. Paul says while you shouldn’t trust it with your data or deploy it in production environments yet "it’s a great option for a developer who wants to start building RethinkDB applications on a Windows PC."
Improved in RethinkDB 2.3 is the database's ReQL query language. The most notable of the improvements is a new command called fold
, that director of engineering Daniel Mewes describes as allowing "you to implement efficient stateful transformations on streams." Paul elaborates further, saying that it performs "reduce
-like operations on ordered streams, with optional support for emitting a stream of values based on the current accumulator state."
On HackerNews, in a discussion on the 2.3 release, the community were largely positive.
User asher_ commented
This is a great release. Awesome job guys!
The inclusion of the fold command has had me thinking about RethinkDB for an event sourced system. Is anyone using it for this purpose at the moment? Additionally, are folds usable with change feeds? That could be really powerful for event sourced systems.
In reply, user v3ss0n said
Yes, this is our prototype: http://phwa.be, a real time multimedia chatroom, with full markdown support but with radically different approach. It uses eventsource + rethinkdb change feeds and now i am looking at fold command.
We are also building a realtime mobile marketplace which is going to be our main startup product.
RethinkDB is an open-source, scalable JSON database built from the ground up. Instead of polling for changes, with RethinkDB the developer tells the database to continuously push updated query results to applications in realtime.