Skip to content

DataLoader batching for GraphQL + query budgets in CI #115

@tayebmokni

Description

@tayebmokni

Summary

Implement per-request DataLoader batching for GraphQL resolvers per doc 07 §17.3. For the post → author → comments shape, GraphQL resolvers use dataloader to batch and cache N+1 queries. REST endpoints get explicit IN (...) batch fetches in code (code review rejects N+1). Add an integration test harness with pg_stat_statements to enforce a "query count budget" per endpoint (e.g., /blog/[slug] <= 4 queries) — CI fails on breach.

Design reference

  • docs/07-media-performance.md §17.3

Acceptance criteria

  • dataloader integrated into GraphQL request context (dataloader.New(req, ...))
  • User, comment, term, media loaders registered with batch size 100
  • userLoader, commentLoader, termLoader, mediaLoader use WHERE id = ANY($1) queries
  • Test harness with pg_stat_statements records query count per endpoint
  • Query-count budgets declared per endpoint; CI fails on breach
  • /blog/[slug] <= 4 queries; /blog index <= 6 queries; /category/[slug] <= 5 queries

Dependencies

none

Complexity

M

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions