LSLínguas Sem BenaventeInglês para brasileiros

Aula

Design docs C1: complete design documents

Nível: C1

Objetivo

Escrever design docs C1 completos com context, goals, non-goals, proposal, alternatives, risks, rollout e monitoring. O foco é um documento que liderança aprova em 30 minutos e engenharia executa sem precisar de outra reunião.

Explicação

Um design doc C1 não é um RFC informal: é um documento que precisa ser aprovado antes da execução e que sobrevive à transição de autor. Estrutura canônica:

1. Context (1 parágrafo)

Onde estamos e por que este doc existe agora. `We are scaling the search service to handle 10x traffic in Q4; this doc proposes the new caching layer.` Context é o que justifica o doc; sem ele, a audiência lê a proposta sem entender o problema.

2. Goals e non-goals

Goals são o que precisa ser verdade depois. `p99 latency under 200 ms; cache hit rate above 80%.` Non-goals são o que está fora de escopo. `We are not changing the payment provider; we are not migrating the read replica in this doc.` C1 separa os dois; sem non-goals, a review gasta tempo em opções fora de escopo.

3. Proposal (a parte principal)

A proposta descreve a arquitetura, o data flow, e os componentes. `We propose a Redis cache in front of the database, with cache-aside reads and explicit invalidation on write.` A proposta tem diagrama (caixas em alto nível), data flow (uma frase por etapa), e decisões chave com trade-off (escolha + alternativa rejeitada).

4. Alternatives considered

Pelo menos duas alternativas, cada uma com trade-off e razão de rejeição. `Alternative B: read replica. Trade-off: needs two sprints. Rejected because the timeline does not support it.` Alternatives considered é o que transforma propaganda em design; sem isso, a proposta vira imposição.

5. Risks e mitigations

Lista nomeada de riscos com impacto em prazo/métrica + mitigação. `Risk: cache invalidation bug. Mitigation: 1% canary for 24 hours before each stage.` Sem mitigation, risco vira objeção.

6. Rollout plan

Estágios com prazos e métricas de saída. `Day 1: 1% canary, watch error rate for 24h. Day 2: 10% if green. Day 5: 100% if green.` Rollout plan é o compromisso operacional; sem ele, o doc não fecha.

7. Monitoring e success metrics

Métricas que vão dizer se o design está funcionando. `p99 latency, cache hit rate, error rate, queue depth; alert at p99 > 250 ms for 5 minutes.` Monitoring fecha o doc: o que vai ser medido depois do rollout.

Exemplos

InglêsTraduçãoObservação
We are scaling the search service to handle 10x traffic in Q4; this doc proposes the new caching layer.Estamos escalando o serviço de busca para 10x tráfego no Q4; este doc propõe a nova camada de cache.Context: onde estamos e por que este doc existe.
Goals: p99 latency under 200 ms; cache hit rate above 80%. Non-goals: we are not changing the payment provider.Metas: latência p99 abaixo de 200 ms; taxa de acerto de cache acima de 80%. Não-metas: não vamos trocar o provedor de pagamento.Goals vs non-goals separados.
We propose a Redis cache in front of the database, with cache-aside reads and explicit invalidation on write.Propomos um cache Redis na frente do banco, com leituras cache-aside e invalidação explícita na escrita.Proposal: arquitetura + data flow + decisões chave.
Alternative B: read replica. Trade-off: needs two sprints. Rejected because the timeline does not support it.Alternativa B: read replica. Trade-off: precisa de dois sprints. Rejeitada porque o cronograma não comporta.Alternatives com trade-off e razão de rejeição.
Risk: cache invalidation bug. Mitigation: 1% canary for 24 hours before each stage.Risco: bug de invalidação de cache. Mitigação: canário 1% por 24 horas antes de cada etapa.Risk com mitigation.
Day 1: 1% canary, watch error rate for 24h. Day 2: 10% if green. Day 5: 100% if green.Dia 1: canário 1%, observar taxa de erro por 24h. Dia 2: 10% se verde. Dia 5: 100% se verde.Rollout plan com estágios e métricas de saída.

Erros comuns

  • Pular o context: a audiência lê a proposta sem entender o problema; a review gasta tempo re-derivando o porquê.
  • Misturar goals com non-goals: 'we will do X' sem 'we will not do Y' deixa a review aberta a feature creep.
  • Proposal sem diagrama: 'vamos usar Redis' não é proposal; diagrama + data flow + decisões é.
  • Alternatives sem trade-off: 'consideramos B' sem dizer por que rejeitamos é propaganda.
  • Risks sem mitigation: 'pode falhar' é óbvio; 'se falhar, mitigamos com X' é engenharia.
  • Rollout sem métrica de saída: 'subimos em 5 dias' é vago; '1% -> 10% -> 100% se error rate < 1%' é comprometimento.

Prática guiada

Reescreva cada bloco abaixo no padrão C1 de design doc.

  1. Context: troque 'we need a new cache' por 'scaling to 10x in Q4; this doc proposes X'.
  2. Goals + non-goals: liste os dois separadamente.
  3. Proposal: inclua diagrama de alto nível + data flow + decisões chave com trade-off.
  4. Alternatives: pelo menos duas, com trade-off + razão de rejeição.
  5. Risks + mitigation: lista nomeada com impacto e plano.
  6. Rollout: estágios com métrica de saída.
  7. Monitoring: métricas e alertas.

Resumo

O design doc C1 tem sete blocos: context, goals, non-goals, proposal, alternatives, risks + mitigation, rollout, monitoring. Cada bloco tem função própria; sem nenhum deles, o doc perde maturidade. O resultado é um documento que liderança aprova em 30 minutos e engenharia executa sem precisar de outra reunião.

Vocabulário

Palavras principais

8 itens
contextcontexto — onde estamos e por que o doc existe

The context section explains why this doc exists.

A seção de context explica por que este doc existe.
goalsmetas — o que precisa ser verdade depois

'Goals: p99 under 200 ms.'

'Metas: p99 abaixo de 200 ms.'
non-goalsnão-metas — explicitamente fora de escopo

'Non-goals: we are not changing the payment provider.'

'Não-metas: não vamos trocar o provedor de pagamento.'
proposalproposta — arquitetura, data flow, decisões chave

The proposal includes a diagram, data flow, and key decisions with trade-offs.

A proposta inclui diagrama, data flow, e decisões chave com trade-offs.
alternatives consideredalternativas consideradas — opções rejeitadas com razão

'Alternatives considered: B, C — both rejected because ...'

'Alternativas consideradas: B, C — ambas rejeitadas porque ...'
rollout planplano de rollout — estágios com métrica de saída

'Rollout plan: 1% canary, 10%, 100% over 5 days.'

'Plano de rollout: canário 1%, 10%, 100% ao longo de 5 dias.'
monitoringmonitoramento — métricas e alertas depois do rollout

'Monitoring: p99, error rate, queue depth; alert at p99 > 250 ms.'

'Monitoramento: p99, taxa de erro, profundidade da fila; alerta em p99 > 250 ms.'
canarycanário — pequena porcentagem recebendo a nova versão primeiro

We will start with a 1% canary.

Vamos começar com um canário 1%.

História

História: Design docs C1: complete design documents

Nível: C1

História em inglês

Writing the caching design doc for the team

On Wednesday, I had to write the design doc for the new caching layer before the architecture review. I opened with context: we are scaling the search service to handle 10x traffic in Q4; this doc proposes the new caching layer. I listed goals and non-goals: goals, p99 under 200 ms; non-goals, we are not changing the payment provider. I described the proposal: Redis cache in front of the database, cache-aside reads, explicit invalidation on write. I listed alternatives: alternative B, read replica; rejected because it needs two sprints. I added risks and rollout: risk, cache invalidation bug; mitigation, 1% canary for 24 hours; rollout, 1% on day 1, 10% on day 2, 100% on day 5. The architecture review approved the doc in 30 minutes; the team started the work the next sprint.

Tradução linha por linha

InglêsTradução
On Wednesday, I had to write the design doc for the new caching layer before the architecture review.Na quarta, eu tive que escrever o design doc da nova camada de cache antes da revisão de arquitetura.
I opened with context: we are scaling the search service to handle 10x traffic in Q4; this doc proposes the new caching layer.Eu abri com context: estamos escalando o serviço de busca para 10x tráfego no Q4; este doc propõe a nova camada de cache.
I listed goals and non-goals: goals, p99 under 200 ms; non-goals, we are not changing the payment provider.Eu listei metas e não-metas: metas, p99 abaixo de 200 ms; não-metas, não vamos trocar o provedor de pagamento.
I described the proposal: Redis cache in front of the database, cache-aside reads, explicit invalidation on write.Eu descrevi a proposta: cache Redis na frente do banco, leituras cache-aside, invalidação explícita na escrita.
I listed alternatives: alternative B, read replica; rejected because it needs two sprints.Eu listei alternativas: alternativa B, read replica; rejeitada porque precisa de dois sprints.
I added risks and rollout: risk, cache invalidation bug; mitigation, 1% canary for 24 hours; rollout, 1% on day 1, 10% on day 2, 100% on day 5.Eu adicionei riscos e rollout: risco, bug de invalidação de cache; mitigação, canário 1% por 24 horas; rollout, 1% no dia 1, 10% no dia 2, 100% no dia 5.
The architecture review approved the doc in 30 minutes; the team started the work the next sprint.A revisão de arquitetura aprovou o doc em 30 minutos; o time começou o trabalho no sprint seguinte.

Notas de vocabulário

  • we are scaling the search service to 10x = context: número + prazo.
  • goals vs non-goals = separação canônica que delimita a review.
  • Redis cache-aside, explicit invalidation = proposal com decisão chave + invalidação.
  • alternative B, read replica; rejected because ... = alternatives com razão de rejeição.
  • 1% canary for 24 hours = risk com mitigation explícita.
  • approved in 30 minutes = sinal de design doc C1: liderança lê e aprova rápido.

Perguntas de compreensão

  1. Por que começar com context em C1?
  2. O que torna alternatives C1 útil?
  3. O que diferencia um rollout C1?

Prática com a história

  1. Escreva o context C1 para um design doc de migração de banco.
  2. Escreva alternatives C1 com trade-off e razão de rejeição.
  3. Escreva um rollout C1 com métrica de saída.

Prática

Exercícios e teste

Próxima etapa
4blocos de exercícios disponíveis neste tema
11questões de teste para revisar depois da aula

A próxima melhoria é transformar esses arquivos em perguntas com resposta no navegador. Por enquanto, esta página já organiza o estudo e permite seguir a aula inteira sem abrir os arquivos manualmente.