Would the following be a viable strategy for implementing versioning(using \"example\" as a sample document type):
Have one original document where the type field is
A strategy for versioning with CouchDB is to NOT ever compact the database which contains the documents for which you need to keep a full history. You could still compact other databases. This simple strategy works today out of the box with an edit conflict resolution strategy.
Deleting a document could be done by writing a new version with no content but a deleted property set.
Branches cannot be done this way because the versioning mechanism offers a single thread of revisions.
Now for the possible future of CouchDB: