
RethinkDB raises an $8M Series A - coffeemug
http://rethinkdb.com/blog/funding/
======
old-gregg
If you're an ambitious engineer thinking about joining a start-up, this is
your chance to be smart about this.

RethinkDB team is the nicest possible group of people one can hope to work
with in Bay Area. They have a great combination of often mutually exclusive
things: hacker-friendly business model (no ads, tech for cash), aggressiveness
and tech-savviness of founders, yet they're humble, honest and nice.

And the product works, well-liked, serving an exploding market, so the
probability of failure is quite low by a typical start-up standards.

This is very rare. Make a move.

~~~
coffeemug
We are aggressively hiring. Most job descriptions aren't up yet, but will be
posted in the next few days. Here is a quick list of high priority positions:

    
    
      * Reliability engineer
        Skills:
          - Good working knowledge of Bash and Python
          - Good working knoweldge of C and/or C++
          - Patience
        Responsibilities:
          - Automate testing and benchmarking infrastructure
          - Make sure long tests/benchmarks reliably run
          - Get to the bottom of stability/performance problems, and
            work with the engineering team to fix them
        More info: http://rethinkdb.com/jobs/reliability/
    
      * Technical writer/developer advocate
        Skills:
          - Basic programming ability in at least two of ruby/python/javascript
          - Good command of english language, style, tone, etc.
          - Ability to explain complex ideas in simple ways in written form
        Responsibilities:
          - Improve API documentation, guides, and tutorials
          - Help support users and bring their concerns back into the product
    
      * Ruby/Rails, Python/Django, Javascript/Node experts
        Skills:
          - Deep understanding of one of the above stacks (you should
            be able to hack on core Rails/Django/Node, know the
            conventions, and respect the community)
        Responsibilities:
          - Write software to make RethinkDB the absolute best possible
            experience for your respective stack
          - Then tell the community about it
    
      * Visual designer
        Skills:
          - Produce beautiful web designs and illustrations
          - Mastery of Adobe Creative Suite
          - Mastery with a tablet and stylus
          - Exhibit creative taste
        Responsibilities (we take visual design and user experience extremely seriously):
          - Design user interfaces
          - Help rebrand our website for commercial / community versions
          - Incorporate illustration and a unique visual style into our brand
          - Creative one-off projects (logo, design t-shirts, marketing
            materials, postcards, packaging, generally make things
            beautiful)
    

Email jobs@rethinkdb.com -- we'd love to hear from you.

~~~
john2x
Is it weird that I find the Technical writer/developer advocate position fun?

~~~
coffeemug
For the right person, it is fun! Shoot me an e-mail to slava@rethinkdb.com ? I
couldn't find your e-mail in the profile/website/github.

~~~
john2x
Ah, I'm not in the US. :) Just never heard/thought of the title before, but it
caught my eye and I thought I would enjoy that kind of work more than just
being a developer.

~~~
coffeemug
Are you open to relocation? We can help take care of the logistics for the
right candidate.

------
lincolnq
Rethinkdb is a really well-designed system. I've been using it (not in
production currently) as a better-designed MongoDB with a proper query
language. I would recommend checking it out for new projects where a document
datastore is appropriate, and to migrate away from a troublesome Mongo.

~~~
octix
I've been using mongo for a few years now, can you please elaborate more on
better designed mongo and troublesome mongo?

~~~
boomzilla
Three words: JOIN, JOIN, JOIN. For any non-trivial domain, you'll need to join
different entity types. For example, a collection of users is fine for user
names, (hashed) passwords, last logins, etc. A collection of document is fine
for text, fonts, URL. Now what happens if you have multiple users
collaborating on multiple documents? Are you going to denormalize the shared
documents to user objects, or are you only keeping document IDs in them? If
you choose the former, you'll run into inconsistency very quickly. If you
choose the latter, you'll need join support, or you have to write the code to
do the poor man's join which could be very inefficient.

RethinkDB supports join out of the box.

~~~
octix
So, if I have 30 nodes and my data is sharded between them, how is that better
than having app/client side join, where I have more control what to fetch and
what not? I could potentially cache results.

I mean, you realize if data is distributed at large scale, it may take a while
till it gets from all nodes the data and joins it...

~~~
boomzilla
If you let the DB do the joins, it could handle more efficiently. For example,
it could distribute the joins to those 30 partitions of the main table, and
then merge the results, so the heavy computation is distributed, and less bits
to move around the network.

Now in the cases where if you can optimize the joins, you still have the
option of doing it in your code in RethinkDB/CouchDB. I've done that too, and
it's usually when I know for sure that I can prune a big collection to a very
small subset more efficiently than using an index.

I would still argue that client app is not the right level of abstraction for
data join though, unless it is a big performance gain for very little extra
complication.

~~~
coffeemug
Slava @ rethink here. I'd be curious to see a use case where doing the join on
the client is more efficient than doing it on the server. I can't think of a
single one off the top of my head.

~~~
SamReidHughes
If the join is "compute all f(s, t) for s in S and t in T" then you'll save
bandwidth (having O(|S| + |T|) bandwidth over the network instead of
O(|S||T|)) by doing it on the client. Of course you could just run `rethinkdb
proxy` if you want to save ethernet bandwidth and run the query on RethinkDB
while connecting to the local cluster node.

~~~
coffeemug
Ah, I see, that makes sense. Usually pulling both tables in full (or even a
single table in full) to the client is not an option (and nobody does cross
products in real-time systems). So people end up pulling a subset of table A,
and then for each document in the subset issue a separate get to the db for
table B (which is obviously worse than having the db do it).

------
jops
I'm looking forward to the LTS release so I can feel more comfortable using it
in a production app.

A slight aside, but I spotted this (currently broken) integration of RethinkDB
and Meteor the other day and wanted to share. It does away with the long poll
Meteor is doing on Mongo. (I have no involvement in this project at all.)

[https://github.com/tuhinc/rethink-
livedata](https://github.com/tuhinc/rethink-livedata)

[http://www.youtube.com/watch?v=YLu_ROrA0YY](http://www.youtube.com/watch?v=YLu_ROrA0YY)

~~~
geoffschmidt
Meteor core dev here! We are super excited about Rethink and Slava and I have
been talking for a while about an official integration. We scoped
multidatabase support out of the upcoming Meteor 1.0 release just to get it
out the door faster -- we need to support people using Meteor in production
with frozen APIs, and we need to do it yesterday -- but support for Rethink is
something I'm very interested in exploring in 2014.

As for the polling on Mongo, you'll love what Meteor is shipping this week.
Meteor now by default connects to Mongo as a replication slave and slurps up
the replication log to drive your realtime queries.

~~~
ludwigvan
Excellent news! Came here to see if anyone is doing meteor-rethink
integration, and saw this. It will be a killer combo. Keep up the good work.

------
benjaminwootton
It amazes me that there is so much money floating around to fund these niche
open source NoSQL products.

(Not that I'm not a fan of RethinkDB. I've been playing with it since one of
the earliest released builds and find it a really lightweight nice database to
use.)

~~~
codelust
Used to think the same way about most investing till I figured out better.

I do not know the specifics of this particular deal, nor have I used the
product, but I hope the points are of going to be some use.

Let us look at it this way. Assume there are 200 funds out there who can do a
series A of this size. That would naturally mean that not every fund is going
to be either a leader or someone who spots new trends (there are not enough
trends out there). Naturally, a lot of them have to invest in deals in other
companies in a hot sector.

A lot of investment is momentum-driven and momentum is often driven by the
narrative. You have to remember that as long as a successful exit happens, the
fund winds up with a good deal irrespective of whether the public (IPO) or the
acquiring company (M&A) eventually profits from it. NoSQL has that momentum at
the moment.

A healthy start-up ecosystem can easily support more than a handful of
companies in a single domain. Once the narrative for the domain really picks
up, even the not-so-great ones (again, I have no clue about RethinkDB) stand a
good chance of being acquired as long as there is decent enough traction and
the sector is so hot that there is pressure on the GPs to make a play in it.

The later they get into the game, the pricier the ticket becomes, but you get
lesser risk too.

And all of this is perfectly OK and fair.

~~~
coffeemug
Slava @ Rethink here.

This is a really good breakdown. I can't read our investors's minds, but I'm
pretty sure this would be a worst case scenario for them. It's certainly not
why we're doing Rethink -- if we thought it would be a #5 company in the
space, we'd pack up and do something else (life's too short).

The NoSQL market is reminiscent of "horseless carriages" \-- as long as you
define a technology by an absence of something, you _know_ you're early in the
game. Databases are a fundamental part of the technology stack, and they tend
to easily stick around for 20-30 years. We think we can build a long-term open
source company that will stick around for that long (incidentally, that's why
we take conventions in ReQL so seriously -- we imagine millions of programmers
fifteen years from now cursing at us for a stupid naming convention).

It's not hard to imagine groundbreaking features in NoSQL products that nobody
is shipping. That's why RethinkDB exists, and we think we won't be a niche
product for long.

~~~
Dave_Rosenthal
Slava, I love the "horseless carriage" analogy. I'll have to use that as I try
to raise money in the NoSQL space :) Seriously though, it also points to a
future where the NoSQL name is going make less and less sense. Anyone have
suggestions for the NoSQL database equivalent of the word 'car'?

-Dave (FoundationDB)

~~~
StavrosK
Like my sibling commenter said, I prefer names that are more descriptive. I
prefer "schemaless" databases, but it depends on what you do. Redis is called
NoSQL but it's not a document database, it's more a key-value store with lots
of slicing and dicing features.

------
mjhea0
RethinkDB is awesome. I have a stealth project which uses RethinkDB in the
backend. I moved it over from Mongo over the weekend. It will be revealed
soon. But I'm working with about 100 million records. Currently testing it
with node, slamming it with thousand of concurrent requests.

Also, I just started a blog series on Rethink.
[http://www.realpython.com/blog/python/rethink-flask-a-
simple...](http://www.realpython.com/blog/python/rethink-flask-a-simple-todo-
list-powered-by-flask-and-rethinkdb/#.Uq9Ha2RDtTc)

Next up will be performance testing.

Congrats, RethinkDB.

~~~
fourstar
How much code had you written with Mongo before? What were your major pain
points in switching?

~~~
mjhea0
I've been using mongo for about a year.

The only pain points are that the API documentation is somewhat confusing. But
they still haven't really launched so I expect that the documentation will be
updated with better examples soon.

~~~
neumino
Could you shoot me a mail at michel@rethinkdb.com with what you found
confusing? We are working on making the docs better, and your feedback would
really help a lot!

Also nice tutorial! I

~~~
mjhea0
I've already spoken with you all on it. This is Michael Herman. :)

Show inputs and outputs!

Love the theme you have going. Cheers!

------
octix
I like the idea of LTS release.

Btw, how do you know that "Thousands of developers are already building
applications backed by RethinkDB;"?

PS: I hope we'll see soon more official drivers...

~~~
coffeemug
_> How do you know that "Thousands of developers are already building
applications backed by RethinkDB;"?_

We know in two ways. First, people have told us via GitHub/IRC/e-mail/etc. and
Shirts For Stories page ([http://www.rethinkdb.com/community/shirts-for-
stories/](http://www.rethinkdb.com/community/shirts-for-stories/)).

Second, the administration UI checks for version updates, which gives us some
information about how many developers are using RethinkDB and how long they
stuck around.

There is no perfect way to know because there are many sources of imprecise
information, but we're quite confident about the overall conclusions of the
data.

 _> I hope we'll see soon more official drivers..._

We've been trying to keep the surface area of the project low for now. Which
specific drivers are you interested in? (we probably won't be able to do
anything about it for the next ~6 months or so, but having the info helps
enormously)

~~~
octix
The part with update check is interesting.

Java! My current stack is spring mvc 3, spring-data-mongodb. It's not perfect,
but at least I don't have to hack my way into basic db ops...

------
zzzaim
Been trying RethinkDB on and off and really like the query language. Does
anybody know if there are any RethinkDB hosting/DBaaS services out there?
Sysadmin/devops is not my forte, and with LTS coming, I hope companies like
MongoHQ/MongoLab/IrisCouch for RethinkDB start to prop up.

~~~
coffeemug
Have you tried www.rethinkdbcloud.com ?

~~~
pspeter3
Is that hosted by RethinkDB or another company?

~~~
coffeemug
It is not hosted by RethinkDB, it's another company.

------
100k
Congrats to Slava and the RethinkDB team. I'm really looking forward to your
continued progress.

------
deepdiver16
Congrats guys! Well deserved.

I have been using RethinkDB over the last month in a new project. If you know
that a document store is the right solution for you, take a look at RethinkDB.
I evaluated it against some of its competitors, and I must say that I was
really amazed at the deep engineering thinking that is going into RethinkDB.
The ease and power of its programming model (use of AST/lamda functions and
like abstractions are awesome), and attention to ease of deployment and
manageability (great UI!) is unparalled in like products. RethinkDb is a young
product for sure, but one with a very bright potential. In addition, being
well funded should help alleviate fears and hopefully help it further gain
traction.

Best of luck!

------
hardwaresofton
Super excited for the rethinkdb team. I absolutely love their database and am
currently trying to stop using it for everything.

Super helpful on IRC (I've been in there multiple times for help with small
problems), seems like an overall awesome team

------
petesoder
Very cool. Congrats, guys! This was a great talk -
[http://www.hakkalabs.co/articles/how-rethinkdb-
works/](http://www.hakkalabs.co/articles/how-rethinkdb-works/)

------
newtonocean
Congrats to Slava, Mike and the RethinkDB team.

------
or-else
I wonder if the low limits on the number of databases and tables will be fixed
in 1.12.

I've seen issue 1648 closed for 1.12 and issue 97 to be completed. Are these
two enough to fix the limits?

Will it be possibly to have, say 100K tables in a single database? In 1000
databases? Is it possible to have 10K databases?

I've read @cofeemug's explanation that a table is a heavyweight object
requiring a few megs of disk space. But that's just a few TBs for 100K tables
which is perfectly fine for a 32 node cluster.

Also, it would be great of you could make a page like Mongos' "Limits and
Thresholds". I understand that you have lots of other things to do but that
one is key in making a decision to use Rethink vs other options.

------
gsibble
Congrats to Rethink! Really glad to see such a fascinating product get the
funding it deserves!

------
leokun
This is so awesome. I have been excited about RethinkDB and a real mongodb
alternative and was just hesitating based on RethinkDb's ability to last. But
now I know you will last. Just awesome. I'm going to start using Rethinkdb on
my next project.

------
alessioalex
There are two things that bother me about the Node.js driver. The first is
that it doesn't have its own repository, you have to go to
[https://github.com/rethinkdb/rethinkdb/tree/next/drivers/jav...](https://github.com/rethinkdb/rethinkdb/tree/next/drivers/javascript)
The second one is that it's written in CoffeeScript. That may have been a good
idea at the beginning, but if you want to have more traction and more
developers looking into the source code I think you should 'translate' it into
raw JS.

------
dpweb
Read this article, installed and started messing w/it.. Got any stats or
insight how this holds up in a real prod environment?

A very crude measurement - I just threw it on a box that I'm 70ms away from,
I'm getting insert responses back in 90ms, on Mongo which I HATED (the "old"
query language I was trying to understand.. a while back it was thought for
just a moment we could get by without the relational algebra) - I was about
200ms - so far so good, but how much can I hammer a particular node?

Looks to be using ~20MB ram on the svr process, works for me..

~~~
coffeemug
We haven't been publishing benchmarks yet because it's hard to do a good,
scientifically sound job. Different hardware, different setups, different
conditions make things really difficult.

If you run into any performance issues, please let us know, we'd love to fix
them!

~~~
dpweb
Congrats on the deal. It is some cool tech.

------
ricardobeat
Congratulations, can't wait for 2.0!

------
AHconsidered
What are the pros or cons of using RethinkDB versus say Cassandra?

~~~
coffeemug
Here is a very short summary.

RethinkDB is much easier to set up and operate, has a much more powerful query
language, and is much friendlier for application developers.

Cassandra supports high write availability in case of network partitions.
RethinkDB does not. The flipside of that is that you (as an app developer)
have to deal with conflicts in Cassandra which makes writing applications much
more difficult.

If you need high write availability in case of network partitioning, go with
Cassandra or Riak. If you don't, go with RethinkDB or MongoDB.

~~~
pkolaczk
Much easier to set up? What can be much easier than unpacking an archive and
running a script to start a node?

IMHO the main difference is data model. RethinkDB is a document store,
Cassandra is a wide-table store. As of the query language I agree, but this is
caused by Cassandra never including anything that would not scale out.

------
pdog
Any notable companies using RethinkDB in production?

~~~
coffeemug
Slava @ rethink here. There are hundreds of really cool production use cases
of RethinkDB that we know of. We'll be publishing a "who's using it" page soon
(we have tons of work and haven't gotten around to this bit yet, but will
soon).

Note that Rethink is still in beta. Lots of companies already use it in
production, but we advise people to test carefully until we ship a long term
support (LTS) release. We'll also offer commercial support options then.

------
embwbam
Congrats! Using RethinkDB on several projects. I love the web interface, I
love the query language, I love the features. Keep it up!

------
shiloa
I tried to find the restrictions/performance costs of storing and accessing
medium to large blobs of text in rethinkdb store (say, for a simple web
crawler), but couldn't find docs related to that. Is there a size restriction
or some other insights from you rethinkdb users or developers out there?

~~~
coffeemug
A blob is generally restricted to 10MB. We haven't published performance data
thus far as we're still working on improving performance. If you try Rethink
and run into problems, please let us know -- we'd love to fix them!

~~~
shiloa
Good to know - thanks and best of luck to you guys!

------
ozgune
Congrats to the RethinkDB team! These guys rock, and I'm looking forward to
their future releases.

------
cheez
Coffeemug, I remember you on IRC in #weblocks. Good stuff, hope you took some
off the table.

------
sourc3
Having met Slava a couple years ago (which seems like a long time ago) in our
office, he is one of wicked smart folks around. Congratulations! Looking
forward to the evolution of RethinkDB.

------
oblio
Good luck, and your first page is golden:

    
    
        joe@alchemist~$ rethinkdb
        joe@clockwerk~$ rethinkdb -j alchemist:29015
    

Just guessing, but joe is probably a Dota fan :)

------
infocollector
Does anyone know at what percentage equity was this raised?

------
wissler
What is their revenue model?

~~~
orthecreedence
Build database, sell support. Like any other open-source DB. Or Riak, for
instance, charges for site-to-site replication. Generally if you have an open-
source project many people are using, you can make money with it.

~~~
romanovcode
RavenDb actually sells the actual product so you need to pay every month for
it.

