Stefan is right. The sequence value that is returned in 2.x includes
encoded information about which nodes you are talking to. This info is
used when resuming the _changes feed in the future, so you can be sure you
don't miss out on any changes.

I covered this during my recent talk at ApacheCon 2018 - with thanks to
Robert Newson who posted a message describing this on the list a few years
ago.

It's slides 52-58:

https://speakerdeck.com/wohali/another-10-common-misconceptions-about-apache-couchdb?slide=52

There's a recording, audio only, here:

https://feathercast.apache.org/2018/09/29/another-10-common-misconceptions-about-apache-couchdb-joan-touzet/

Subtle, but this is why it's important to retain your _seq number (or
last_seq) and provide it on subsequent calls.

-Joan

----- Original Message -----
> From: "Stefan Klein" <st.fankl...@gmail.com>
> To: user@couchdb.apache.org
> Sent: Monday, October 8, 2018 7:31:15 AM
> Subject: Re: Strange behavior of the _changes api
> 
> Hi,
> 
> Am Mo., 8. Okt. 2018 um 10:55 Uhr schrieb 蒋鹏程
> <jiang.pengch...@navercorp.com
> >:
> 
> >
> > Could someone explain this for me? Many thanks.
> >
> >
> The order of the changes feed is not guaranteed to be preserved
> between
> multiple calls, so the "first" change may be a different one on each
> call.
> As a heads-up, if you use the "since" parameter it's only guaranteed
> you
> see all changes that happened after that one, it is NOT guaranteed
> you will
> not see a change before that one.
> 
> If you think of a cluster setup, it's hard to define the order of
> changes.
> Document A might be submitted to node A and document B to node B,
> you're
> talking to node C, which order is correct, AB or BA?
> 
> regards,
> Stefan
> 

Reply via email to