O banco de dados é o primeiro ponto onde um sistema começa a sofrer pressão sob carga, exigências de consistência e padrões reais de consulta. Este curso oferece uma abordagem acessível para analisar esses *trade-offs*, abrangendo desde escolhas básicas de armazenamento até réplicas, *sharding* e a decisão final entre SQL, NoSQL ou uma configuração híbrida. Ao final, a escolha do banco de dados em uma discussão de projeto de sistemas deixa de ser um palpite para se tornar uma decisão fundamentada em restrições.
O curso aborda a contribuição de um banco de dados para uma aplicação, como os padrões de acesso moldam as escolhas de esquema e como a indexação altera a latência de leitura e o custo de gravação. Também trata de replicação, failover, trade-offs de consistência, sharding, seleção de shard-key e uma estrutura replicável para escolher entre SQL, NoSQL ou uma arquitetura híbrida.