# DynamoDB Streams Trigger

O DynamoDB Streams é uma funcionalidade do banco de dados DynamoDB que publica eventos quase em tempo real para cada modificação de registro em uma tabela do DynamoDB que tenha o DynamoDB Streams habilitado. O **DynamoDB Streams Trigger** captura esses eventos e os envia para *pipelines* em execução na infraestrutura da Digibee. Isso permite que padrões de *Change Data Capture* (CDC) sejam facilmente implementados com *pipelines* da Digibee.

## Parâmetros

Dê uma olhada nos parâmetros de configuração do *trigger*. Parâmetros suportados por[ expressões Double Braces](https://docs.digibee.com/documentation/connectors-and-triggers/pt-br/double-braces/overview) estão marcados com `(DB)`.

<table data-full-width="true"><thead><tr><th>Parâmetro</th><th>Descrição</th><th>Valor padrão</th><th>Tipo de dado</th></tr></thead><tbody><tr><td><strong>DynamoDB Client Account</strong></td><td>Conta AWS usada para acessar a API DynamoDB Streams.</td><td>N/A</td><td><em>String</em></td></tr><tr><td><strong>Table Name</strong></td><td>Nome da tabela do DynamoDB da qual o fluxo de eventos será buscado.</td><td>N/A</td><td><em>String</em></td></tr><tr><td><strong>AWS Region</strong></td><td>Define a região da AWS onde o DynamoDB está localizado.</td><td>us-east-1</td><td><em>String</em></td></tr><tr><td><strong>Expiration</strong></td><td>A quantidade de tempo que o evento passa na fila (em milissegundos). Se o valor for igual a 0 ou for um valor maior que 6h (21600000 ms), a expiração será 1/4 do valor especificado em <strong>Maximum Timeout</strong>.</td><td>600000</td><td>Inteiro</td></tr><tr><td><strong>Maximum Timeout</strong></td><td>Tempo máximo (em milissegundos) para o <em>pipeline</em> processar informações antes de retornar uma resposta. Padrão: 30000. Limite: 900000.</td><td>30000</td><td>Inteiro</td></tr><tr><td><strong>Allow Redelivery of Messages</strong></td><td>Se ativada, a opção permite que as mensagens sejam entregues novamente caso o Pipeline Engine falhe.</td><td><em>False</em></td><td>Booleano</td></tr></tbody></table>

## Informações adicionais

O **DynamoDB Streams Trigger** não ativa automaticamente a funcionalidade Streams em uma tabela existente do DynamoDB. Em vez disso, o *trigger* assume que a tabela existe com o recurso pré-configurado e envia os eventos para o *pipeline* como estão, sem qualquer transformação.

Veja abaixo um exemplo de evento do DynamoDB Streams:

```
{
   "eventID":"1",
   "eventName":"INSERT",
   "eventVersion":"1.0",
   "eventSource":"aws:dynamodb",
   "awsRegion":"us-east-1",
   "dynamodb":{
      "Keys":{
         "Id":{
            "N":"101"
         }
      },
      "NewImage":{
         "Message":{
            "S":"New item!"
         },
         "Id":{
            "N":"101"
         }
      },
      "SequenceNumber":"111",
      "SizeBytes":26,
      "StreamViewType":"NEW_AND_OLD_IMAGES"
   }
}


```

Observe que o *trigger*, uma vez implantado, sempre começa consumindo o evento mais recente dos Streams. Isso significa que o *pipeline* não receberá eventos que foram publicados antes de estar *online*. Isso evita que o ambiente de execução seja sobrecarregado com eventos, o que pode levar a erros de falta de memória e atrasos na entrega.
