pessoal, agora vamos falar de um outro banco de dados que é incrível da AWS, que é o DynamoDB o Dynamo é muito poderoso de verdade, ele é um NoSQL, diferente dos que a gente vem falando até agora dos SQLs que a gente falou ele é um NoSQL, ele é totalmente gerenciado pela AWS, ele foi projetado para ele ser basicamente o cara rápido para caramba, ele consegue te entregar um tempo de resposta fora do comum. E ele é muito escalável, você consegue ter a sua aplicação sendo muito eficiente quando você está usando o DynamoDB em tempo de resposta. Você vai ter uma baixa latência, você vai ter um cara que vai responder, não importa o que aconteça. Ele é muito bom, por exemplo, imagina que você tem um e-commerce e você precisa guardar os dados do carrinho de compra ou os dados de sessão de usuário do seu cliente, assim por diante, dentro de um banco de dados. Quando você usa o DynamoDB, por exemplo, você vai saber que quando tiver uma Black Friday, você vai conseguir comportar as consultas nesse banco, porque ele é super escalável, ele é super rápido e assim por diante. Então, você vai conseguir responder a qualquer tipo de pico de processamento. Ele tem suporte de documento e chave valor também. Então, você consegue ter várias ideias aqui, fazer várias coisas com o DynamoDB, beleza? Muita gente acaba usando isso para jogo também, para vários outros esquemas. Quando a gente está falando do DynamoDB, então, quais são as grandes sacadas dele em desempenho e escalabilidade? Ele tem baixa latência, ele garante uma latência de milissegundos, então ele é muito rápido na entrega. Ele tem uma escalabilidade automática, então ele vai se ajustar automaticamente às consultas e vai continuar te dando o throughput que você precisa, independentemente do número de solicitações que vier na entrada. Ele tende a responder, beleza? Ele tem o particionamento, então os dados vão ser divididos em várias partições se você tiver um número muito grande de dados isso não vai atrapalhar a consulta ou a resposta do seu Dynamo porque ele vai estar quebrado em partições então quando o volume de dados crescer você não vai ficar lento, beleza? ele vai manter a performance outra coisa também é que ele tem o throughput consistente de novo como você sabe que ele vai conseguir é escalar ele acaba te garanto garantindo ali o desempenho de leitura e gravação sempre continua lhe se consegue ter previsibilidade nisso então um cara que for usar em momentos de pico ele é muito bom tá como é que funciona as chaves do do da era uma modelagem de dados ele primeiro quando está falando de chave primária, ele pode ter esses dois tipos de combinação, basicamente, aqui. Ele pode ter uma chave simples ou uma chave composta aqui. A primeira a gente está falando, por exemplo, imagina que tem lá, user ID 123, user ID, 6, aqui é a nossa chave simples, a chave é userID, beleza? então ele vai buscar por isso e aqui ele vai garantir a unicidade da coisa, quando está falando de uma composta ele está falando basicamente da combinação de duas chaves aqui, então ele vai ter userID 1, 2, 3, outro userID 1, 2, 3, mas o order dele é o que vai fazer ser um cara só então 123 mais order é 789 vai garantir que não vai pegar o de baixo então tem uma chave composta que você consegue garantir também nada de diferente de banco de dados de chave simples e composta tá simplesmente isso está falando de modelagem de dados também ele tem ali é atributos flexíveis ele vai poder adicionar ou remover atributo sem quebrar o esquema da tabela então se precisar de é mudar um pouco ali os atributos da tabela você não vai quebrar ela não vai ter impacto que é muito bom e se tem uma o suporte a índice secundário também muito banco de dados tem isso também tá você consegue usar tanto o GSI que são os índices secundários globais quanto os LSI que são os índices secundários globais, quanto os LSI, que são os índices secundários locais. Então, ambos os esquemas aqui de índice secundário, eles são válidos aqui para o DynamoDB. Mas nada demais, vamos ser bem honestos, muito banco de dados tem isso também. Então, a modelagem de dados dele não foge muito do que a gente já conhece. também então a modelagem de dados dele não foge muito do que a gente já conhece ele tem suporte para transação então ele vai suportar aqui o esquema é esse se você não sabe muito bem o que é vamos lá esse de atomicidade beleza então significa o seguinte se eu tiver uma transação sendo executada e ela ela só tem dois caminhos ou ela vai ser totalmente executada ou totalmente não executada. O que significa? Imagina que eu tenho algumas ações dentro dessa transação, ele começou a fazer primeira, segunda, terceira, deu pau na quarta, ele volta tudo. Ou ele fez a primeira, segunda, terceira e a quarta deu tudo certo, ele basicamente comita isso. Então a partir daí vai estar dentro do banco de dados resolvido. Então, ele faz ou ele não faz? Ele não tem fez metadinha, entendeu? Basicamente é isso, quando a gente está falando de atomicidade. Consistência, ele consegue garantir a consistência do dado. Então, por exemplo, imagina que você tem lá um saldo de conta. Saldo de conta que não pode ficar negativo, por algum motivo regra de negócio não pode ficar negativo saldo de conta ele tem que estar sempre positivo você consegue colocar esse tipo de consistência no banco de dados para nunca é aceitar um dado negativo vou te falar de qual é a minha visão disso tá eu costumo trazer esse tipo de regra para dentro do código e não para dentro do banco mas se você quiser colocar dentro do banco você pode também então vai muito do seu estilo de arquitetura e assim por diante ele permite, tá? Outra coisa também é o isolamento que é o I aqui do ACID que ele garante que você não vai ter uma transação interferindo na outra e a durabilidade, que a partir do momento que você fez uma concluiu uma transação terminou a sua implementação a sua execução aquele dado vai estar durável ali dentro da tabela sabe que ele vai estar lá, vai estar funcionando, vai estar consistindo então basicamente ele consegue garantir tudo isso, permitindo que a gente tenha uma porrada de operação de leitura e gravação sem você dar nenhum tipo de problema ou inconsistência, assim por diante basicamente é isso, tá? então ele é muito bom pra quando você tiver um grupo de coisas acontecendo ali, tiver que fazer várias chamadas, assim por diante, ele vai funcionar muito bem quando a gente está falando de segurança a gente tem criptografia de dados ali, como a gente já falou dado em repouso, que é usando KMS, então você sabe que vai ficar criptografado, você não vai ter problema de segurança ali. Controle de acesso de integração, você pode usar o IAM também para fazer controle de acesso ali do que a gente vai ter, e os VPCI de points, que também vão garantir ali o tráfego entre o Dynamo DB e não deixar que isso saia da sua rede AWS. O Dynamo vai falar com a sua aplicação e você não vai sair de dentro da sua rede, beleza? Então, basicamente, você vai estar dentro da camada de segurança da AWS que já é permitida. Ele consegue fazer integração com algumas ferramentas, que são bem interessantes, eu coloquei aqui algumas. Primeiro, você consegue usar o DynamoDB Streams, que você vai conseguir fazer, streamar com o DynamoDB, beleza? Toda vez que você tiver mudança de dados na tabela, ele vai conseguir criar aplicações reativas a isso. Então com isso você vai conseguir streamar o seu processamento. Eu acho isso bem interessante. Ele tem a AWS Lambda também, que com isso você consegue fazer o streaming usando o Lambda sem servidor. Então você vai ter uma aplicação totalmente serverless aqui, ainda mais com o streaming usando o lambda sem serviço então vai ter tipo uma aplicação totalmente serverless aqui ainda mais com o streaming então você consegue fazer isso de forma diferente pode streamar usar o lambda e executar tudo sem precisar ficar preso a nada e se tem o dax, que putz o dax é muito fera você consegue usar além do dynamo já ser muito rápido se você usar o dax você vai acelerar o seu tempo de entrega usando cache. As estratégias de cache normalmente são matadoras para quem tem sistemas muito críticos. Então, você consegue usar cache na memória ali, ele vai ser até 10 vezes mais rápido do que o DynamoDB sem o DAX, tá? Então, ele tem tudo isso de possibilidade aqui para a gente. É uma baita ferramenta também. Acho que dá para ser usado em vários cenários, eu vejo ele muito pra e-commerce beleza? muito show de bola ele