GraphQL позволяет клиенту запросить дерево полей, но на сервере каждый nested field может вызвать отдельный запрос к БД — классический N+1.
DataLoader батчит и кэширует загрузку сущностей в рамках одного HTTP-запроса, снижая число round-trip к PostgreSQL.
- [DataLoader — GitHub (graphql/dataloader)](https://github.com/graphql/dataloader) — Библиотека батчинга для GraphQL.
- [GraphQL Best Practices — graphql.org](https://graphql.org/learn/best-practices/) — Общие рекомендации по схеме и серверу.
---
## Мониторинг
Логируйте число SQL-запросов на один GraphQL operation в staging — регрессия видна до prod.
Ограничивайте глубину и complexity запроса на публичном API.
