Based on your description, it looks like you are on the verge of being able
to offer a very useful capability: the ability to query the follows AND
unfollows since the last time you checked. That would be a great addition to
For example, I'd really like to be able to page through A, B, C, etc. And
then, after that, say "OK, what's changed since then"?
> -----Original Message-----
> From: firstname.lastname@example.org [mailto:twitter-
> development-t...@googlegroups.com] On Behalf Of John Kalucki
> Sent: Sunday, October 04, 2009 11:17 PM
> To: Twitter Development Talk
> Subject: [twitter-dev] Re: Twitter, Please Explain How Cursors Work
> I haven't looked at all the parts of the system, so there's some
> chance that I'm missing something.
> The method returns the followers in the reverse chronological order of
> edge creation. Cursor A will have the most recent 5,000 edges, by
> creation time, B the next most recent 5,000, etc. The last cursor will
> have the oldest edges.
> Each cursor points to some arbitrary edge. If you go back and retrieve
> cursor B, you should receive N edges created just before the edge-
> pointed-to-by-B was created. I don't recall if N is always 5000,
> generally 5000 or if it's at most 5000. This detail shouldn't matter,
> other than, on occasion, you'll make an extra API call.
> In any case, retrieving cursor B will never return edges created after
> the edge-pointed-to-by-B was created. All edges returned by cursor B
> will be no-newer-than, and generally older than, than the edge-pointed-
> So, all future sets returned by cursor B are always disjoint from the
> set originally returned by cursor A. In your example, if you refetched
> both A and B, the result sets wouldn't be disjoint as there are no
> longer 5,000 edges between cursor A and cursor B.
> I think this, in part answers your question. ?
> -John Kalucki
> Services, Twitter Inc.
> On Oct 4, 6:10 pm, Dewald Pretorius <dpr...@gmail.com> wrote:
> > For discussion purposes, let's assume I am cursoring through a very
> > volatile followers list of @veryvolatile. We have the following
> > cursors:
> > A = 5,000
> > B = 5,000
> > C = 5,000
> > I retrieve Cursor A and process it. Next I retrieve Cursor B and
> > process it. Then I retrieve Cursor C and process it.
> > While I am processing Cursor C, 200 of the people who were in Cursor
> > unfollow @veryvolatile, and 400 of the people who were in Cursor B
> > unfollow @veryvolatile.
> > What do I get when I go back from C to B? Do I now get 4,600 ids in
> > the list?
> > Or, do I get 5,000 in B, which now includes a subset of 400 ids that
> > were previously in Cursor A?
> > Dewald