Thanks for all the great feedback, everyone! I'm so happy to see continued enthusiasm for our little project. :)
I don't have a lot of great ideas of things I'd like to see implemented in CouchDB itself, but I wanted to turn the clock back to the last time we went through this exercise: events following on from the CouchDB Summit we held with Cloudant in 2012. (We had just released CouchDB 1.2.0 at that time.) During that summit, we came up with a short list of things we'd like to do in CouchDB, a list we've been chipping away at for a long time now. Robert Newson did a summary of the ideas with traction, with commentary here[1]: https://gist.github.com/rnewson/2387973 There's still some topics here worth considering. I won't paste all of rnewson's commentary here, but from his list, here are the headlines of things that we still don't have that we should continue to consider (some of which have already been raised in this thread): User-facing features ==================== 1. Conflicts are the rule, not the exception AKA Conflicts as first-class citizens: * Always surface the conflict on read * Always accept a write, assuming it passes validation 3. Improve the user and security model 4. Remove reserved metadata from documents 8-10. Support HTTP/2 12. Richer querying model (chained queries, "joins," etc) 13. Partial updates of documents 14. Partial reads of documents 15. Create an exclusive namespace for databases (/_db/<dbname>) 18. Documentation 20. Allow database renaming 21. Database "aliases" (symlinks) 22. _changes feed for views (or things that approach this) **. Easier external authentication (OAuth 2.0, SAML, JWP, OpenID, etc.) * Note: restricted to CouchDB as auth client, not provider Developer-facing features ========================= 2. Different HTTP engine (cowboy) 4. Improve test suite (we still need more work here, esp. for clustered tests) 5. Move attachments out of database files (which removes make_blocks) 6. Plugin/addon/module interface 7. View server protocol enhancements/refactoring (avoid double marshalling to/from JSON, for instance) 9. Database corruption detection and repair Finally, I'd like to add just one topic that we've been discussing perenially but hasn't come up here yet: completely deprecate and remove the :5986 "backend" couch_httpd interface by 3.0. It's already causing user confusion, and we always intended to get rid of it, so now's the time. [1]: For reference, the full list of suggestions and public votes on them are here: http://www.allourideas.org/couchdb2012/results?all=true I'd be happy to start up another pairwise-comparison process for our 2016 ideas if people would like. Ranking of the brainstormed ideas so far would be a great next step. -Joan
