2. WHAT IS RETHINKDB?
Open-source database for the realtime web
It inverts the traditional database architecture by exposing an exciting new access model
Instead of polling for changes, the developer can tell rethinkdb to continuously push updated query
results to applications in realtime.
Rethinkdb’s realtime push architecture dramatically reduces the time and effort necessary to build
scalable realtime apps.
In addition to being designed from the ground up for realtime apps, rethinkdb offers a flexible
query language, intuitive operations and monitoring apis, and is easy to setup and learn.
2
3. WHEN IS RETHINKDB A GOOD CHOICE?
It is a great choice when your applications could benefit from realtime feeds to your data.
It is the first open-source, scalable database designed specifically to push data to applications in
realtime. It dramatically reduces the time and effort necessary to build scalable realtime apps.
Modern applications require sending data directly to the client in realtime. Some use cases where
companies benefited from rethinkdb’s realtime push architecture include:
COLLABORATIVE WEB AND MOBILE APPS
MULTIPLAYER GAMES
REALTIME MARKETPLACES
CONNECTED DEVICES
For example, when a user changes the position of a button in a collaborative design app, the server
has to notify other users that are simultaneously working on the same project.
3
4. WHO IS USING RETHINKDB IN
PRODUCTION?
Rethinkdb is being used in production by hundreds of technology startups,
consulting studios, and fortune 500 companies. Here are some example use cases:
1. Jive software and mediafly use rethinkdb to power reactive web and mobile apps
2. Pristine.Io and narrative clip use rethinkdb to power cloud infrastructure for connected
devices
3. Platzi and workshape.Io use rethinkdb to power realtime analytics
4. CMUNE and nodecraft use rethinkdb to power massively scalable multiplayer games
5. Rethinkdb has a vibrant community of over 100,000 developers, and hundreds of
contributors from around the world.
4
5. IS RETHINKDB BASED ON EXISTING
TECHNOLOGY?
Implementing efficient real-time push architecture required redesigning most
database components, including the query execution engine, the distributed system, the
caching subsystem, and the storage engine. Because the architecture affects every database
component, rethinkdb has been implemented in C++ from scratch. Rethinkdb was built over
five years by a team of database experts with the help of hundreds of contributors from
around the world.
5
6. HOW IS RETHINKDB DIFFERENT FROM REALTIME
SYNC?
Rethinkdb is fundamentally different from realtime sync APIS like firebase, pubnub, or
pusher in three important ways.
1. Firstly, realtime sync APIS are cloud services and rethinkdb is an open-source project. While
rethinkdb is available in the cloud via compose.Io and amazon AWS, it can also be deployed in
your own infrastructures without restrictions.
2. Secondly, realtime sync APIS are limited to syncing documents, while rethinkdb is a general
purpose database system. In rethinkdb you can run arbitrary queries including table joins,
subqueries, geospatial queries, aggregation, and map-reduce.
3. Finally, realtime sync APIS are designed to be accessed directly from the browser. This makes it
very easy to get basic apps up and running, but limits the flexibility as the app expands.
Rethinkdb is designed to be accessed from an application server, much like a traditional database.
6
7. WHEN IS RETHINKDB NOT A GOOD CHOICE?
1. Rethinkdb is not a good choice if you need full ACID support or strong schema
enforcement—in this case you are better off using a relational database such as mysql or
postgresql.
2. In some cases rethinkdb trades off write availability in favor of data consistency. If high
write availability is critical and you don’t mind dealing with conflicts you may be better
off with a dynamo-style system like riak.
7
8. WHAT ARE THE SYSTEM REQUIREMENTS?
1. The rethinkdb server is written in C++, javascript, bash and runs on 32-bit and 64-bit
linux systems, as well as OS X 10.7 and above. Client drivers can run on any platform
where their languages are supported.
2. It is recommended that rethinkdb servers have at least 2gb of ram, but there are no other
strict hardware requirements. Rethinkdb has a custom caching engine and can run on low-
memory nodes with large amounts of on-disk data. It also has specialized support for
high-end hardware and does a great job on high-memory nodes with many cores, solid-
state storage, and high-throughput network hardware.
8
9. DOES RETHINKDB SUPPORT SQL?
1. No. However, rethinkdb’s query language can do nearly anything SQL can do,
including table joins and aggregation functions, and it’s powerful, expressive and easy
to learn.
2. Rethinkdb can also be significantly slower than other nosql databases like mongodb.
But it provides a helpful web-based administrative user interface for managing the
database
9