Tech Choices I Regret at Spectrum
Regret 3: Using RethinkDB I chose RethinkDB as our primary data store mainly because of changefeeds. They allow you to listen to live updates on (almost) any query. I thought this would reduce complexity by avoiding a separate PubSub system for real-time functionality. Unfortunately, we have had a lot of troubles with RethinkDB. Since it is not widely used, there is little documentation and knowledge about operations. We have had many database outages and debugging them has often felt like shooting in the dark. It also turns out that changefeeds do not scale as well as we had expected. While we managed to work around it, we should not have had to. 😕 Nowadays, I would choose a more established database (Postgres?) and build a PubSub system on top.