[ 
https://issues.apache.org/jira/browse/COUCHDB-2396?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14176951#comment-14176951
 ] 

Alexander Shorin commented on COUCHDB-2396:
-------------------------------------------

User experience may be only improved if only it faces some issues with current 
API on attempt to solve some problem. What are these problems which may receive 
user experience improvement? That's what the last question was about.

I wouldn't say that using filters for changes feed could be considered as 
"hacking" - it's a more general way for doing various things. Which also 
includes fetching changes for multiple documents.

Performance would be still an issue for both since CouchDB doesn't have an 
internal index "by_seq_and_doc_id", just only "by_seq" and "by_id". So without 
it the operation complexity will be the same for both filtered changes feed and 
"per object feed". If this issue will get solved, changes feed filtered by 
document ids will also receive performance boost.

My point is that this feature "doesn't scale" well since as more feeds you're 
subscribed for as more complicated will be their management and support on the 
client side. Personally, I familiar with only single case when this feature 
could be sweet, but still filtered changes feed handles it fine. That's why I 
wonder where this feature may be useful while changes feed with all the filters 
cannot be.

> Provide ?changes=true for all GET requests
> ------------------------------------------
>
>                 Key: COUCHDB-2396
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-2396
>             Project: CouchDB
>          Issue Type: Wish
>      Security Level: public(Regular issues) 
>          Components: HTTP Interface
>            Reporter: André Gaul
>
> h2. Situation
> Assume you've made one of the following HTTP requests against a CouchDB:
> * GET /albums/foobar
> * GET /albums/_design/ddoc/_view/by_name?startkey=foo
> In a lot of applications, you're interested in the changes that happened 
> since the last request or you even want to receive continuous/live updates 
> (e.g., via [Server Sent Events|http://www.w3.org/TR/eventsource/]). Actually, 
> that's what CouchDB's _changes feed is made for (and it does a good job in a 
> few projects I maintain). CouchDB 2.0 seems to go a step further by providing 
> a changes feed for views (according to a discussion with [~janl] on irc, see 
> also [here|https://github.com/rcouch/rcouch/wiki/View-Changes]). However, the 
> _changes feed is a bit hard to use if you want to get the changes for a 
> specific request with all involved parameters (e.g., for the above view 
> query).
> h2. Improvement
> From a user's perspective, it would be much simpler if the changes could be 
> fetched for a specific request by simply appending _?changes=true_ and a 
> _since_ parameter whose value was provided by the previous request, e.g. by
> * GET /albums/foobar?changes=true&since=4711
> * GET /albums/_design/ddoc/_view/by_name?startkey=foo&changes=true&since=4711
> Technically, the changes reply could consist of [JSON 
> patches|https://tools.ietf.org/html/rfc6902].
> This kind of _changes_ feature would be great for all REST APIs in the 
> context of (near-) real time apps. CouchDB probably has almost everything in 
> place to support this feature and make life much easier ;). On the other 
> hand, I can imagine that it requires a significant amount of work in 
> CouchDB's internals.
> Since I'm not too familiar with CouchDB's internals, I'd like to bring this 
> idea up for discussion here.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to