Consistência, Replicação e CAP
Não se preocupe se essas palavras parecerem assustadoras — vamos explicar cada uma ao longo do caminho. Nesta lição, vamos aprender a falar em uma entrevista sobre algumas ideias básicas: replication (replicação — manter cópias dos mesmos dados em vários lugares, para que se uma máquina falhar exist
System Design (planear como construir softwares grandes que atendem muitas pessoas) é como planear uma cidade: ruas, armazenamento, semáforos e equipas de manutenção, para que a cidade continue funcionando bem mesmo no horário de pico, quando todo mundo está na rua ao mesmo tempo.
- Consistência e replicação
- A ideia central desta lição: como mantemos cópias de dados (replication), quantas cópias precisam concordar (quorum), por que às vezes as cópias só se atualizam depois de um momento (eventual consistency), qual trade-off escolhemos durante um problema de rede (CAP), e como trocamos para um backup automaticamente quando algo falha (failover).
- Trade-off
- Trade-off — uma escolha consciente em que você ganha uma coisa e paga por ela com outra, como escolher fast food em vez de uma refeição caseira: você economiza tempo, mas perde um pouco de qualidade. Em uma entrevista, você explica o que ganhou e o que custou.
- Métrica operacional
- Uma métrica operacional — um número que mostra se a decisão realmente funciona quando o sistema está no ar e a atender utilizadores reais (isso é chamado de produção). Por exemplo: latência (quanto tempo leva para obter uma resposta), taxa de erro (a proporção de requisições que falham), atraso de fila (quantas tarefas estão a esperar na fila), taxa de acerto do cache (quantas vezes encontramos a resposta na memória rápida), entre outros.