When paging in the API, since things are index based, there are race conditions where records can be omitted or sent twice. (if deletes or inserts happen while retrieving all)
lets say there are groups:
test1, test2, test3, test4
Then I call /groups with limit of 2. I get a next offset of 2 (since offset 0 and 1 were sent back in first call.)
Then someone else deletes “test1”. Then when calling /groups with an offset of 2, then test4 is returned. And not test3! There is a missing record!
Instead it should do paging by returning the ID of last one returned, and pass that in the next call as “return after this ID”, and it will be consistent with no race conditions.
This seems like an important bug right?