Estratégias de otimização e performance em graphql em GraphQL
Prompt gerado automaticamente para Otimização e performance em GraphQL em GraphQL
"Você é um engenheiro de performance sênior especializado em GraphQL. Uma grande empresa de e-commerce está enfrentando lentidão crítica em suas APIs GraphQL, impactando a experiência do usuário e as vendas. O problema principal é a sobrecarga e a ineficiência nas requisições.
A empresa utiliza um servidor GraphQL Apollo Server e um banco de dados PostgreSQL. As queries mais problemáticas são complexas, com múltiplos níveis de aninhamento e envolvem agregação de dados em coleções grandes (ex: `products` com `variants` e `reviews`, ou `orders` com `items` e `customer_details`). Há também um uso intensivo de `N+1 problems` e excesso de campos retornados nas queries (over-fetching).
Gere um plano de ação detalhado e prático para otimizar a performance das APIs GraphQL, focando em reduzir a latência e o uso de recursos. O plano deve cobrir as seguintes áreas:
1. **Otimização de Dataloaders e Batching:** Como identificar e implementar Dataloaders de forma eficaz para resolver problemas de N+1, incluindo exemplos de uso com `pg-promise` ou `knex.js` (se aplicável para PostgreSQL).
2. **Persisted Queries e Automatic Persisted Queries (APQ):** Explique os benefícios e as etapas para implementar APQ no Apollo Server, incluindo considerações de segurança e cache.
3. **Cache de Respostas GraphQL:** Estratégias para cachear respostas completas ou parciais em diferentes níveis (CDN, Redis, memória do servidor), incluindo invalidação de cache.
4. **Otimização de Queries e Resolvers:**
* **Análise de Performance:** Ferramentas e técnicas para identificar gargalos nas queries e resolvers (ex: `apollo-tracing`, `GraphQL Inspector`).
* **Campo de Seleção (Field Selection) e `graphql-fields`:** Como forçar os clientes a selecionar apenas os campos necessários e como os resolvers podem usar essa informação para otimizar as consultas ao banco de dados.
* **Paginacão Eficiente:** Recomendações para paginação baseada em cursor (relay-style) vs. offset/limit, e como implementá-las para grandes datasets.
* **Evitar Over-fetching e Under-fetching:** Como estruturar schemas
Tags relacionadas
Como Usar este Prompt
Clique no botão "Copiar Prompt" para copiar o conteúdo completo.
Abra sua ferramenta de IA de preferência (ChatGPT e etc.).
Cole o prompt e substitua as variáveis (se houver) com suas informações.
Outros prompts de GraphQL
Continue explorando prompts nesta categoria.
Melhores práticas de otimização e performance em graphql para GraphQL
Prompt gerado automaticamente para Otimização e performance em GraphQL em GraphQL
Melhores práticas de debugging em graphql para GraphQL
Prompt gerado automaticamente para Debugging em GraphQL em GraphQL
Melhores práticas de otimização e performance em graphql para GraphQL
Prompt gerado automaticamente para Otimização e performance em GraphQL em GraphQL