The queue applied backpressure to the producer.
A fila aplicou backpressure ao produtor.Aula
Complex systems vocabulary
Nível: C1
Objetivo
Usar vocabulário de sistemas complexos em C1 com backpressure, saturation, fan-out, coupling, cohesion, invariants e consistency models. O foco é falar sobre sistemas distribuídos com a precisão técnica que a audiência sênior espera.
Explicação
Sistemas complexos em C1 têm vocabulário próprio. Sem essas palavras, a conversa fica vaga; com elas, a audiência entende exatamente o que se quer dizer. Sete conceitos essenciais:
1. Backpressure
Quando um serviço produz mais rápido do que o consumidor consegue processar, o backpressure sinaliza para o produtor desacelerar. `The queue applied backpressure to the producer when the consumer fell behind.` Backpressure em C1 é diferente de 'queue cheia': é sinal explícito, não falha.
2. Saturation
O sistema está rodando no limite da capacidade, sem reserva. `The database is at 95% CPU; we are in saturation.` Saturation é estado, não evento; e é o precursor de incidentes em C1.
3. Fan-out
Uma requisição gera N chamadas para outros serviços. `The checkout service fans out to inventory, payment, and fraud; a slow payment service adds 200 ms to every checkout.` Fan-out em C1 sempre cita o número e o impacto em latência.
4. Coupling e cohesion
Coupling é o quanto um serviço depende de outro. `High coupling between checkout and inventory makes them hard to deploy independently.` Cohesion é o quanto um serviço tem responsabilidade única. `Low cohesion in the user service makes it hard to test and maintain.` C1 usa os dois termos juntos: alto coupling + baixa cohesion é o anti-pattern clássico.
5. Invariants
Propriedades que o sistema sempre mantém. `Invariant: a user cannot have a negative balance.` Invariants em C1 são testados em produção, não só em unit tests; quebra de invariant é incidente.
6. Consistency models
Strong consistency, eventual consistency, causal consistency, read-your-writes. `The system uses eventual consistency for the click events; a user may see their own click in 200 ms but other users in 1 second.` C1 nomeia o modelo, não só 'é consistente'.
7. Failure modes
Cascade failure (uma falha derruba várias), thundering herd (muitas requisições simultâneas após retry), split brain (nós discordam porque a rede particionou). `The cascade started when the payment service slowed, causing the queue to back up, triggering retries that overwhelmed the system.` C1 nomeia o failure mode na resposta a incidente, não 'estava lento'.
Exemplos
| Inglês | Tradução | Observação |
|---|---|---|
| The queue applied backpressure to the producer when the consumer fell behind. | A fila aplicou backpressure ao produtor quando o consumidor ficou para trás. | Backpressure: sinal explícito ao produtor. |
| The database is at 95% CPU; we are in saturation. | O banco está a 95% de CPU; estamos em saturação. | Saturation: estado, precursor de incidente. |
| The checkout service fans out to inventory, payment, and fraud; a slow payment service adds 200 ms to every checkout. | O serviço de checkout faz fan-out para inventário, pagamento e fraude; um serviço de pagamento lento adiciona 200 ms a cada checkout. | Fan-out com número e impacto em latência. |
| High coupling between checkout and inventory makes them hard to deploy independently. | Alto coupling entre checkout e inventário torna difícil fazer deploy independente. | Coupling: dependência entre serviços. |
| Invariant: a user cannot have a negative balance. | Invariante: um usuário não pode ter saldo negativo. | Invariant: propriedade que o sistema sempre mantém. |
| The system uses eventual consistency for the click events; a user may see their own click in 200 ms but other users in 1 second. | O sistema usa consistência eventual para os eventos de clique; um usuário pode ver o próprio clique em 200 ms mas outros usuários em 1 segundo. | Consistency model nomeado explicitamente. |
Erros comuns
- Backpressure sem sinal: 'a fila está cheia' é estado; backpressure é sinal ao produtor para desacelerar.
- Saturation como evento: saturação é estado que se mede; é precursor de incidente, não falha.
- Fan-out sem número: 'fazemos várias chamadas' não diz o impacto em latência; C1 cita o número.
- Coupling sem cohesion: 'os serviços são acoplados' é metade do diagnóstico; sem cohesion, não há caminho de saída.
- Invariants só em testes: invariante que não é monitorado em produção é wishful thinking.
- Failure modes vagos: 'estava lento' não diz por que; C1 nomeia o failure mode na resposta a incidente.
Prática guiada
Reescreva cada bloco abaixo no padrão C1 de vocabulário de sistemas complexos.
- Backpressure: troque 'a fila está cheia' por 'a fila aplicou backpressure ao produtor'.
- Saturation: troque 'o sistema está no limite' por 'estamos em saturação; métrica X em Y%'.
- Fan-out: cite o número de chamadas e o impacto em latência.
- Coupling + cohesion: cite os dois juntos; um sem o outro é metade do diagnóstico.
- Invariants: nomeie a propriedade e diga como ela é monitorada em produção.
- Consistency model: nomeie o modelo, não só 'é consistente'.
- Failure modes: nomeie o failure mode (cascade, thundering herd, split brain) na resposta a incidente.
Resumo
Vocabulário C1 de sistemas complexos usa backpressure (sinal ao produtor), saturation (estado, precursor de incidente), fan-out (com número e impacto), coupling + cohesion (juntos), invariants (monitorados em produção), consistency models (nomeados), e failure modes (cascade, thundering herd, split brain). Sem essas palavras, a conversa é vaga; com elas, é precisa.
Vocabulário
Palavras principais
The database is at 95% CPU; we are in saturation.
O banco está a 95% de CPU; estamos em saturação.The service fans out to inventory, payment, and fraud.
O serviço faz fan-out para inventário, pagamento e fraude.High coupling makes independent deploy hard.
Alto coupling torna difícil o deploy independente.Low cohesion makes testing hard.
Baixa coesão torna os testes difíceis.'Invariant: a user cannot have a negative balance.'
'Invariante: um usuário não pode ter saldo negativo.'The cascade started when the payment service slowed.
A cascata começou quando o serviço de pagamento ficou lento.The retries caused a thundering herd that overwhelmed the system.
Os retries causaram um thundering herd que sobrecarregaram o sistema.Split brain caused both nodes to think they were the primary.
Split brain fez ambos os nós acharem que eram o primário.História
História: Complex systems vocabulary
Nível: C1
História em inglês
Naming the failure mode in the incident response
On Tuesday, we had a 30-minute incident on the checkout service. I named the failure mode in the postmortem: the cascade started when the payment service slowed, causing the queue to back up, triggering retries that overwhelmed the system. I described the saturation: the database was at 95% CPU; we were in saturation before the incident. I named the fan-out impact: the checkout fans out to inventory, payment, and fraud; the slow payment service added 200 ms to every checkout. I added a backpressure plan: the queue will apply backpressure to the producer before saturation, and we will add a 5% error rate alert. The VP said: thank you for naming the failure modes; we can now design against them.
Tradução linha por linha
| Inglês | Tradução |
|---|---|
| On Tuesday, we had a 30-minute incident on the checkout service. | Na terça, tivemos um incidente de 30 minutos no serviço de checkout. |
| I named the failure mode in the postmortem: the cascade started when the payment service slowed, causing the queue to back up, triggering retries that overwhelmed the system. | Eu nomeei o failure mode no postmortem: a cascata começou quando o serviço de pagamento ficou lento, fazendo a fila acumular, disparando retries que sobrecarregaram o sistema. |
| I described the saturation: the database was at 95% CPU; we were in saturation before the incident. | Eu descrevi a saturação: o banco estava a 95% de CPU; estávamos em saturação antes do incidente. |
| I named the fan-out impact: the checkout fans out to inventory, payment, and fraud; the slow payment service added 200 ms to every checkout. | Eu nomeei o impacto do fan-out: o checkout faz fan-out para inventário, pagamento e fraude; o serviço de pagamento lento adicionou 200 ms a cada checkout. |
| I added a backpressure plan: the queue will apply backpressure to the producer before saturation, and we will add a 5% error rate alert. | Eu adicionei um plano de backpressure: a fila vai aplicar backpressure ao produtor antes da saturação, e vamos adicionar um alerta de 5% de taxa de erro. |
| The VP said: thank you for naming the failure modes; we can now design against them. | A VP disse: obrigada por nomear os failure modes; agora podemos desenhar contra eles. |
Notas de vocabulário
- the cascade started when the payment service slowed = failure mode nomeado: cascade.
- we were in saturation before the incident = saturation como precursor, não como evento.
- fans out to inventory, payment, and fraud; added 200 ms = fan-out com número e impacto.
- the queue will apply backpressure to the producer = backpressure como sinal, não estado.
- thank you for naming the failure modes = maturidade C1: vocabulário preciso evita debates.
Perguntas de compreensão
- O que é backpressure em C1?
- O que é saturation?
- Por que coupling e cohesion vêm juntos?
Prática com a história
- Descreva um cascade failure em C1.
- Dê um exemplo de invariant e diga como ela é monitorada em produção.
- Descreva fan-out com número e impacto em C1.
Prática
Exercícios e teste
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.