You can also "fill in" missing data. If you were writing a webscraper, you could make a service that looks for url objects without any content, and scrape them. Then make a service that looks for url objects with content but that is missing ML-filled in details, and have it fill those in.
It's pretty good for disparate teams with different sets of technology. One group doing document classification, another trying NLP, another using RNNs, etc.
There are a few times in my career where rethinkdb would have been a killer feature, especially with it's well-documented language bindings.
I've continued working on this codebase, even pushing commits this week like this one: https://github.com/sagemathinc/cocalc/commit/c20a62446b6e43c...
I'll definitely need to go back and read it more thoroughly later and take a look through your code, thanks for the links.