Context
Payouts, applications, users, logs, and tickets will grow continuously. Offset pagination becomes slower at depth and can skip/duplicate results when rows are inserted between requests. Flexible filters also risk expensive unbounded queries.
Scope
- Define opaque cursor contracts using a stable composite order such as
(created_at, id).
- Implement forward/backward cursor pagination for collection endpoints.
- Add maximum page sizes, filter validation, and deterministic tie-breaking.
- Review query plans and add evidence-based composite indexes for common role/status/date filters.
- Avoid N+1 profile lookups and return only required fields.
- Add representative-volume performance tests and query budgets.
Acceptance criteria
Relevant areas
Payout find-all, bounty find-all, support ticket listing, user queries, filters and pagination components.
Context
Payouts, applications, users, logs, and tickets will grow continuously. Offset pagination becomes slower at depth and can skip/duplicate results when rows are inserted between requests. Flexible filters also risk expensive unbounded queries.
Scope
(created_at, id).Acceptance criteria
400.EXPLAIN ANALYZEevidence accompanies new indexes.Relevant areas
Payout
find-all, bountyfind-all, support ticket listing, user queries, filters and pagination components.