How do you handle disconnects and missed messages? What's required to make this a robust sync solution, including syncing the first query and then changes, akin to Firebase? Are there plans to support direct access from web clients and optimistic writes on the client?
We don't have any plans to support direct access from web clients. The main problem is security. RethinkDB doesn't have any notion of users or access privileges, so any client can e.g. drop a table. We might add this eventually, but it's low on the priority list. See <https://github.com/rethinkdb/rethinkdb/issues/266> for more discussion.