Skip to content

Conversation

abutcher-gh
Copy link

Rather than specifying 'true' or 'false' for the 'cache' option,
specifying 'follow' will use a changes feed to track external
modification to cached documents. Only documents that have been
cached during normal write-through operation will be updated.

This is useful if you have a system where multiple clients may write
directly to the database without going through a single cache.

Note: This could be made more optimal for cases where not all changes
in the feed are cached as it pulls the full document content in the
change feed. Maybe a mode 'follow-lite' could enable a lightweight
change feed followed by additional fetch if it is found that a changed
document is cached. If, for a particular app however, changes are
likely to occur externally to documents in the cache, the existing
'include_docs' mode is probably OK.

Rather than specifying 'true' or 'false' for the 'cache' option,
specifying 'follow' will uses a changes feed to track external
modification to cached documents.  Only documents that have been
cached during normal write-through operation will be updated.

This is useful if you have a system where multiple clients may write
directly to the database without going through a single cache.

Note: This could be made more optimal for cases where not all changes
in the feed are cached as it pulls the full document content in the
change feed.  Maybe a mode 'follow-lite' could enable a lightweight
change feed followed by additional fetch if it is found that a changed
document is cached.  If, for a particular app however, changes are
likely to occur externally to documents in the cache, the existing
'include_docs' mode is probably OK.
@panuhorsmalahti
Copy link
Contributor

My personal opinion would be to get rid of the cache altogether. It shouldn't be in the purview of a database access library to cache database operations, and usually these caches have more costs than benefits. Cache will be disabled by default in 1.0.0, but I'd even push for removing the cache feature completely from cradle. I don't know how others feel about this change, though.

@export-mike
Copy link

I've had issues with the cache in the past +1 to remove it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants