O DynamoDB suporta GraphQL?

Sim, através do AWS AppSync. O AppSync é o serviço GraphQL gerenciado da AWS, e o DynamoDB é uma das suas fontes de dados nativas: os resolvers mapeiam cada query ou mutation GraphQL para uma operação do DynamoDB, como GetItem, Query ou PutItem. O DynamoDB em si não tem endpoint GraphQL — a camada GraphQL roda na frente dele.

Como a dupla funciona

No AppSync você registra uma tabela do DynamoDB como fonte de dados e então anexa um resolver a cada campo do seu schema GraphQL. O handler de requisição do resolver traduz os argumentos GraphQL recebidos em uma chamada do DynamoDB, e o handler de resposta molda o item (ou itens) que o DynamoDB retorna de volta na resposta GraphQL. A AWS lista o AppSync em primeiro lugar entre as integrações serverless do DynamoDB exatamente por causa desse padrão.

Por que é uma stack comum

As duas metades são serverless: o AppSync escala a camada de API enquanto o DynamoDB escala armazenamento e throughput, sem servidores de nenhum dos lados. Subscriptions GraphQL em tempo real combinam naturalmente com as escritas de milissegundos de um dígito do DynamoDB.

Quanto custa um campo aninhado

Um resolver por campo significa uma requisição ao DynamoDB por campo. posts { author { name } } resolve a lista uma vez, depois resolve author uma vez por post, e cada uma dessas é cobrada separadamente.

Medido com ReturnConsumedCapacity contra uma tabela com 25 posts em uma coleção de itens e 25 itens de autor, cada um com cerca de 920 bytes:

Query, the 25 posts                        ConsumedCapacity 3.0
25 GetItem calls, one author each          ConsumedCapacity 12.5
1 BatchGetItem, the same 25 author keys    ConsumedCapacity 12.5

O campo aninhado custa mais de quatro vezes a consulta que produziu a lista. Agrupar em lote não muda isso: BatchGetItem (uma operação de resolver do AppSync por direito próprio, limitada a 100 chaves e 16 MB por chamada) reduz 25 idas e voltas a uma só, mas ainda lê 25 itens e cobra 25 leituras. Ele compra latência, não capacidade.

A dez dessas consultas GraphQL por segundo, isso dá US$50,92 por mês em unidades de requisição de leitura em us-east-1 on-demand, sendo US$41,06 só do campo authora calculadora de preços faz a mesma aritmética com os seus próprios números.

E é por isso que a correção está no design das chaves e não no resolver. Projete o que o campo aninhado retorna dentro do item pai ou em um GSI, para que a consulta da lista já o carregue e o resolver filho não tenha nada a buscar.

A alternativa: traga o seu próprio servidor

Nada obriga a usar o AppSync — qualquer servidor GraphQL (Apollo, Yoga e outros) pode resolver campos chamando o DynamoDB pelo AWS SDK, exatamente como chamaria qualquer outro backend. A contrapartida é que você mesmo opera a camada GraphQL.

Aprofunde-se

Resolvers GraphQL continuam esbarrando nas mesmas regras de padrões de acesso — o guia de modelagem de dados explica como projetar chaves que atendam às suas consultas, o expression builder gera a sintaxe de condição subjacente, e o DynoTable te deixa inspecionar o que os seus resolvers de fato gravaram.

Referências

Verificado pela última vez em 2026-07-13 contra a documentação oficial da AWS vinculada acima.

Números de capacidade medidos em 2026-07-28 no DynamoDB Local 3.3.0 via @aws-sdk/client-dynamodb 3.1095.0 no Node 24.18.0; os valores de ConsumedCapacity acima são do próprio motor. Custos calculados a partir do preço on-demand de unidade de requisição em us-east-1 na nossa tabela de preços sincronizada da AWS.

Trabalhe com o DynamoDB sem o Console

Um cliente desktop rápido para DynamoDB que roda o SQL de verdade que o DynamoDB não consegue — JOINs, GROUP BY, agregações — com edição visual e um agente de IA com suas próprias chaves do Bedrock.

Teste grátis de 30 dias, sem cartão de crédito — depois o plano Grátis sem limite de tempo.