Dynamo é um grupo de técnicas que quando tomados em conjunto podem formar um sistema de armazenamento estruturado altamente disponível de valores-chave[1] ou de um sistema de arquivos distribuído.[2] Tem propriedades de ambos os bancos de dados e tabelas hash distribuídas (DHTs). Amazon DynamoDB é "construído nos princípios da Dynamo"[3] (aparentemente com algumas melhorias) e é um serviço hospedado na infra-estrutura AWS. Ele foi criado para ajudar a resolver alguns problemas de escalabilidade que o site da Amazon.com experimentava durante a temporada de férias de 2004.[4] Em 2007 foi utilizado em Amazon Web Services, tal como o seu Simple Storage Service (S3).[5]
O Dynamo deve ser capaz de escalar um host de armazenamento (doravante, referido como "nó") de cada vez, com um impacto mínimo tanto sobre os operadores do sistema como sobre o próprio sistema. Cada nó no Dynamo deve ter o mesmo conjunto de responsabilidades que seus pares. Não deve haver nó distinto ou nós que assumam papéis especiais ou conjunto extra de responsabilidades. O projeto deve favorecer as técnicas descentralizadas ponto-a-ponto sobre o controle centralizado. O sistema precisa ser capaz de explorar a heterogeneidade na infra-estrutura em que é executado, por exemplo, a distribuição do trabalho deve ser proporcional às capacidades dos servidores individuais, isso é essencial para adicionar novos nós com maior capacidade sem precisar atualizar todos os hosts de uma só vez.
A Amazon publicou o artigo sobre o Dynamo, mas nunca divulgou sua implementação. A camada índice do Amazon S3 implementa e estende muitas das características principais de um Dynamo. Desde então, várias implementações foram criadas com base no artigo. O documento também inspirou muitos outros implementações de banco de dados NoSQL.[6] Aqui estão alguns projetos que implementam ou foram inspirados por ele: Aerospike, Apache Cassandra, Projeto Voldemort e, Riak.