Pular para conteúdo

AWS DynamoDB - Nodes Documentados

Visão Geral

Este diretório contém a documentação completa de todas as 6 tools de AWS DynamoDB disponíveis no Lumina Flow Builder.

Amazon DynamoDB é um banco de dados NoSQL totalmente gerenciado pela AWS que oferece: - ⚡ Performance consistente em milissegundos - 📈 Escalabilidade automática - 🔒 Segurança integrada - 💰 Modelo de pagamento pay-per-use - 🌍 Disponibilidade global

Tools Documentadas (6/6) ✅

1. DYNAMODB_PUT - Inserir Item

O que faz: Insere ou sobrescreve um item completo na tabela DynamoDB.

Quando usar: - Cadastro de novos usuários - Salvar dados de formulário - Criar registros completos - Cache de sessões

Características: - Sobrescreve item se já existir - Suporta ConditionExpression para prevenir duplicatas - Operação atômica

Documentação: 1133 linhas | 32 KB


2. DYNAMODB_GET - Buscar Item por Chave

O que faz: Recupera um item específico usando sua chave primária.

Quando usar: - Login de usuário - Buscar detalhes de produto - Verificar existência de registro - Carregar configurações

Características: - Busca O(1) - tempo constante - Operação mais barata do DynamoDB - Retorna item completo ou undefined

Documentação: 894 linhas | 25 KB


3. DYNAMODB_QUERY - Buscar Múltiplos Itens

O que faz: Busca múltiplos itens usando Partition Key, com filtros opcionais.

Quando usar: - Histórico de pedidos de um cliente - Mensagens de um chat - Posts de um usuário - Timeline/feed

Características: - Busca eficiente em uma partição - Suporta Sort Key range (BETWEEN, >, <, begins_with) - Retorna itens ordenados automaticamente - Muito mais eficiente que Scan

Conceitos importantes: - KeyConditionExpression: DEVE incluir Partition Key - FilterExpression: Filtro adicional (aplicado após leitura) - Limit: Controla quantidade de itens retornados

Documentação: 1139 linhas | 31 KB


4. DYNAMODB_SCAN - Escanear Tabela Completa

O que faz: Escaneia toda a tabela ou aplica filtros em atributos não-chave.

Quando usar: - Relatórios gerais - Buscar por atributos que não são chaves - Exportar dados - Análises one-time

⚠️ ATENÇÃO: - Operação CARA e LENTA - Lê TODA a tabela - Use apenas quando necessário - Prefira Query sempre que possível

Características: - Não precisa de Partition Key - FilterExpression aplicado APÓS leitura (paga por tudo) - Útil mas deve ser evitado em produção

Documentação: 954 linhas | 26 KB


5. DYNAMODB_UPDATE - Atualizar Item

O que faz: Atualiza campos específicos de um item sem substituir o item inteiro.

Quando usar: - Incrementar contador (visualizações, likes) - Atualizar status de pedido - Decrementar estoque após venda - Modificar campos específicos

Características: - Atualiza apenas campos especificados - Operações atômicas (incremento/decremento seguro) - Mais eficiente que Put para atualizações parciais

Operações UpdateExpression: - SET campo = :valor - Define valor - SET campo = campo + :inc - Incrementa - REMOVE campo - Remove atributo - ADD campo :valor - Adiciona a número/set

Documentação: 1131 linhas | 31 KB


6. DYNAMODB_DELETE - Deletar Item

O que faz: Remove permanentemente um item da tabela.

Quando usar: - Cancelar pedido - Excluir conta (LGPD/GDPR) - Limpar dados temporários - Remover sessões expiradas

⚠️ IMPORTANTE: - Deleção é PERMANENTE e IRREVERSÍVEL - Sempre implemente confirmação dupla - Considere soft delete (UPDATE status) - Documente para compliance (LGPD)

Características: - Operação atômica - Não falha se item não existe - Pode usar ConditionExpression

Documentação: 1119 linhas | 31 KB


Conceitos Fundamentais do DynamoDB

Partition Key e Sort Key

Partition Key (Chave de Partição): - Campo obrigatório que define em qual partição o item é armazenado - Deve ter boa distribuição para evitar hot partitions - Exemplos: userId, email, productId

Sort Key (Chave de Ordenação): - Campo opcional que permite múltiplos itens com mesma Partition Key - Itens são ordenados automaticamente pela Sort Key - Perfeito para timeline, histórico, versões - Exemplos: timestamp, orderId, version

Estrutura de chave:

Tabela: Pedidos
Partition Key: userId (string)
Sort Key: timestamp (string)

Item 1: userId="user123", timestamp="2025-10-01", valor=100
Item 2: userId="user123", timestamp="2025-10-05", valor=200
Item 3: userId="user456", timestamp="2025-10-01", valor=150

Query vs Scan

Característica QUERY SCAN
Performance ⚡ Rápido (busca 1 partição) 🐌 Lento (lê toda tabela)
Custo 💰 Baixo (paga itens retornados) 💸 Alto (paga tudo lido)
Requisito Precisa Partition Key Não precisa chaves
Ordenação Automática (Sort Key) Nenhuma garantia
Uso Operações frequentes Análises esporádicas

Exemplo de custo: - Tabela: 1 milhão de itens - Buscar 10 itens específicos: - Query: Lê 10 itens = $0.000001 - Scan: Lê 1.000.000 itens, retorna 10 = $0.10 (100.000x mais caro!)

Condition Expressions

Permitem validações antes de executar operações:

Exemplos:

// Prevenir sobrescrita
ConditionExpression: "attribute_not_exists(userId)"

// Validar estoque antes de decrementar
ConditionExpression: "estoque >= :quantity"

// Deletar apenas se status correto
ConditionExpression: "#status = :pending"

Global Secondary Index (GSI)

Permite Query em atributos que não são chaves:

Sem GSI: - Só pode fazer Query na Partition Key - Para buscar por email, precisa Scan (caro)

Com GSI: - Cria índice com email como Partition Key - Pode fazer Query eficiente por email - Transforma Scan caro em Query barato

Performance e Custos

Operações por Custo (do mais barato ao mais caro)

  1. GetItem - Buscar 1 item específico
  2. Query - Buscar múltiplos itens em 1 partição
  3. BatchGetItem - Buscar múltiplos itens de várias partições
  4. Scan - Ler toda a tabela

Boas Práticas de Performance

SEMPRE: - Use GetItem quando souber a chave exata - Use Query ao invés de Scan sempre que possível - Crie GSI para queries frequentes em atributos não-chave - Use limit em Query e Scan para controlar custos - Implemente paginação para grandes volumes - Configure TTL para deletar dados expirados automaticamente

NUNCA: - Fazer Scan em produção sem limit - Fazer múltiplos GetItem em loop (use BatchGetItem) - Usar Put quando só precisa atualizar 1 campo (use Update) - Esquecer de tratar item não encontrado - Criar hot partitions (mesma Partition Key usada demais)

Segurança e Compliance

LGPD/GDPR

Para compliance com leis de proteção de dados:

  1. Right to Erasure (Direito ao Esquecimento):
  2. Implemente funcionalidade de DELETE completo
  3. Documente todas as exclusões (quem, quando, por quê)
  4. Período de quarentena opcional (30 dias)

  5. Data Minimization:

  6. Armazene apenas dados necessários
  7. Use TTL para expirar dados temporários
  8. Delete dados não mais relevantes

  9. Access Logs:

  10. Registre quem acessa dados pessoais
  11. Use CloudTrail para auditoria
  12. Implemente soft delete para histórico

Credenciais AWS

⚠️ NUNCA: - Comitar credenciais no código - Expor Access Key em logs - Compartilhar Secret Key

SEMPRE: - Use variáveis de ambiente - Rotacione credenciais regularmente - Use IAM roles quando possível - Mínimo privilégio necessário

Estatísticas da Documentação

Total de Documentação: - 📄 Arquivos: 6 - 📝 Linhas: 6.370 - 💾 Tamanho: 188 KB - ⏱️ Tempo de leitura estimado: ~45 minutos

Conteúdo por arquivo: - Explicação conceitual completa - Código TypeScript real da implementação - Parâmetros detalhados com flows de teste - Mínimo 2 exemplos completos e testáveis - Boas práticas e anti-padrões - 5+ dicas práticas por tool

Próximos Passos

Explore as outras integrações AWS:

  • AWS S3 - Armazenamento de arquivos
  • AWS SQS - Filas de mensagens
  • AWS SNS - Notificações pub/sub
  • AWS Lambda - Funções serverless
  • AWS SES - Envio de emails
  • AWS EventBridge - Eventos e automações
  • AWS CloudWatch - Monitoramento e métricas

Documentação criada em: 12/10/2025 Padrão: DOCUMENTATION_GUIDE.md Lumina Flow Builder - Sistema de automação WhatsApp