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)
- GetItem - Buscar 1 item específico
- Query - Buscar múltiplos itens em 1 partição
- BatchGetItem - Buscar múltiplos itens de várias partições
- 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:
- Right to Erasure (Direito ao Esquecimento):
- Implemente funcionalidade de DELETE completo
- Documente todas as exclusões (quem, quando, por quê)
-
Período de quarentena opcional (30 dias)
-
Data Minimization:
- Armazene apenas dados necessários
- Use TTL para expirar dados temporários
-
Delete dados não mais relevantes
-
Access Logs:
- Registre quem acessa dados pessoais
- Use CloudTrail para auditoria
- 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