I can not comprehend how this is solved with the cursor based pagination.

I think there’s two possible solutions. If say you’re sorting on a created_at field, you can put that value in the cursor. Eg encode_base_64("created_at---#{node.created_at}”) . Then when passing that cursor the server would use that value in query, WHERE created_at > ? .

Alternatively you could always use an ID as the cursor. But the server would then need to query that record so that it can get the appropriate created_at value in this example to filter on.

I’m not really sure which way is simpler. The former would save an extra query, but may result in larger cursors.