-
-
Save Zatvobor/5013360 to your computer and use it in GitHub Desktop.
This is edited list of CouchDB Future Features which might as well be a part of https://github.com/datahogs/couch_gears. Check http://en.wikipedia.org/wiki/MoSCoW_Method for more about special tags such a #MUST, #SHOULD, #COULD, #WONT
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
User Facing Features | |
==================== | |
#WONT 1. Conflicts are the rule, not the exception | |
All previous versions of CouchDB hide conflicts by default (selecting | |
an arbitrary but consistent winning revision). Expert users can find | |
and resolve conflicts. | |
Instead, expose the true picture by default, this includes; | |
* Reading a document with conflicts returns all conflicting versions, | |
not just the winner. This might manifest as the ?conflicts=true | |
response or could be a 300 (Multiple Choices) response. | |
* Always accept a write (as long as it passes all validate_doc_update | |
functions). This means that no response will give a 409 (Conflict) by | |
default. You can still insist on a matching revision by using the | |
If-Match header. | |
* _rev is frequently assumed to be a user-facing revision/versioning | |
system, our efforts to convince otherwise have failed. Embrace this | |
also and rename the field to _mvcc. | |
#SHOULD 2. Replace Futon | |
A modern interface that has first class support for all features | |
(proper editing for validate_doc_update, show and list functions, | |
etc). | |
#SHOULD 3. Improve the user and security model | |
* Support distributed identity systems such as OpenID | |
* Allow for easier external authentication | |
* Finer grained authorization (instead of the binary _admin or not) | |
* Instead of exposing /_users as a database, design an API to cover | |
all expected operations instead. | |
Fine-grained authorization would allow the ability grant read and write | |
access independently, among other things. Specifically it should be possible | |
to grant the ability to write but not read. | |
#COULD 4. Support WebSockets | |
#COULD 5. Support EventSource | |
#COULD 6. Support MessagePack | |
#WONT 7. Support SPDY | |
#MUST 8. Partial updates of documents | |
It should be possible to change just a subset of a document's | |
properties without needing to write an update function. | |
#MUST 9. Partial reads of documents | |
It should be possible to read just a subset of a document's properties | |
without needing to write a show function. | |
#MUST 10. Enhance background task management | |
Currently, replication tasks can be cancelled, awkwardly. Compaction | |
tasks and view building tasks cannot, short of restarting the server | |
or remote shell access to the erland VM. | |
Provide a consistent and simple API for cancelling any running | |
task. This API will also provide status/progress information where | |
appropriate and pause/resume where possible too. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment