Introduction


When implementing a paginated list screen in a business application, the first idea that comes to mind is usually "fetch rows with OFFSET/LIMIT."

But once you actually run it, the problems pile up fast: "The same row appeared again on the next page," "A record I saw earlier is gone," "Page 1000 takes forever to load." OFFSET/LIMIT...