[SEC] Breve descrição e data
1) Princípios e cultura
Blameless. O erro é uma propriedade do sistema, não de uma pessoa. Estamos à procura do «porquê», não de quem é a culpa.
Factos e invariantes. Todas as conclusões são baseadas em timeline, SLO, traçados e logs.
Publicidade dentro da empresa. Os resultados e as lições estão disponíveis para os comandos adjacentes.
As acções são mais importantes do que os protocolos. Documento inalterado ≡ tempo perdido.
Publicação rápida. Um rascunho pós-mortem dentro de 48 a 72 horas após o incidente.
2) Taxonomia e critérios de incidentes
Seriedade (SEC):- SEV1 - total indisponibilidade/perda de dinheiro/dados;
- SEV2 - degradação substancial (erros> SLO, p99 fora);
- SEV3 - Degradação parcial/cenário de volta existe.
- Impacto: regiões afetadas/tenentes/produtos, duração, métricas de negócios (conversão, GMV, cancelamento de pagamentos).
- SLO/orçamento errado: quanto orçamento está esgotado, como isso afeta a velocidade de lançamento e experiências.
3) Papéis e processo de incidente
Invident Team (IC): controla o processo, prioriza os passos, designa os proprietários.
Comunicação Lead: informa os steakhalders/clientes através do modelo.
Ops/On-call: eliminação, ação mitigante.
Scribe, guia temporizações e artefactos.
Subject Matter Experts (SME): diagnóstico profundo.
Etapas: detecção escalada estabilização verificação recuperação pós-mortem implementação de melhorias.
4) Modelo pós-mortem (estrutura)
5) RCA Techniques (Root Cause Search)
5 Why - sequential clarification of causes to the system level.
Ishikawa (fish bone) - factors "People/Processes/Tools/Materials/Environment/Dimensions."
Event-Chain/Ripple - a chain of events with probabilities and triggers.
Barrier Analysis - which "fuses" (timeouts, breakers, quotas, tests) were supposed to stop the incident and why they did not work.
Change Correlation - correlation with releases, config digs, feature flags, provider incidents.
Practice: Avoid "root cause = person/one bug." Look for a system combination (debt + lack of guard rails + irrelevant runbooks).
6) Communications and transparency
Internal: single channel (war-room), short updates according to the template: status → actions → ETA of the next update.
External: status page/newsletter with facts without "guilt," with apologies and an action plan.
Sensitivity: do not disclose PD/secrets; legal wording to be agreed.
After the incident: a summary note with human language and a link to a technical report.
External update template (brief):
"31 Oct 2025, 13:40 UTC - some users encountered payment errors (up to 18 minutes). The reason is the degradation of the dependent service. We turned on bypass mode and restored operation at 13:58 UTC. Apologies. Within 72 hours, we will publish a report with actions to prevent recurrence"
7) Actions and implementation management
Each action is owner, deadline, acceptance criteria, risk and priority relationship.
Action classes:
1. Engineering: timeout budgets, jitter retreats, breakers, bulkheads, backprescher, stability/chaos tests.
2. Observability: SLI/SLO, alert guards, saturation, traces, steady-state dashboards.
3. Process: runbook update, on-call workouts, game day, CI gates, bipartisan review for risky changes.
4. Architecture: cache with coalescing, outbox/saga, idempotency, limiters/shading.
Gates: releases fail unless "post-mortem critical actions" are closed (Policy as Code).
Verification: retest (chaos/load) confirms the elimination of the risk.
8) Integration of feedback
Sources:
Telemetry: p99/p99 tails. 9, error-rate, queue depth, CDC lag, retray budget.
VoC/Support: topics of calls, CSAT/NPS, churn signals, "pain points."
Product/Analytics: user behavior, failure/friction, drop-off in funnels.
Partners/Integrators: webhook failures, contract incompatibility, SLA timing.
Signal → decision loop:
1. The signal is classified (severity/cost/frequency).
2. An architectural ticket is created with a hypothesis and the price of the problem.
3. Falls into the engineering portfolio (quarterly/monthly), ranked by ROI and risk.
4. Execute → measure effect → update SLI/SLO/cost baselines.
9) Post-mortem maturity metrics
% postmortems published ≤ 72 h (target ≥ 90%).
Average "lead time" from incident to closure of key actions.
Reopen rate of actions (quality of DoD formulations).
Repeated incidents for the same reason (target → 0).
Proportion of incidents caught by guards (breaker/limiter/timeouts) vs "breakthrough."
Saturation of dashboards (SLI covering critical paths) and "noise" of alerts.
Share of game-day/chaos scenarios that simulate detected failure classes.
10) Example of postmortem (summary)
Event: SEV2. Payment API: up p99 to 1. 8s, 3% 5xx, 31 Oct 2025 (13:22–13:58 UTC).
Impact: 12% of payment attempts with retrays, part - cancellation. Erroneous budget q4: − 7%.
Root Cause: "slow success" of currency dependence (p95 + 400 ms), retrai without jitter → cascade.
Barrier failure: the breaker is configured only for 5xx, not for timeouts; there was no rate-cap for low priority.
What worked: hand shading and stale-rates feature flag.
Actions:
Enter timeout budget and jitter retrays (DoD: p99 <400 ms at + 300 ms to dependency).
Breaker for "slow success" and fallback stale data ≤ 15 minutes.
Update runbook "slow dependency," add chaos script.
Add dashboard "served-stale share" and alert at> 10%.
Enter release-gate: without passing chaos-smoke - prohibit release.
11) Artifact patterns
11. 1 Timeline (example)
13: 22:10 Alert p99> 800ms (gateway)
13: 24:00 IC marcado, war-room aberto
13: 27:30 Identificado «sucesso lento» currency-api
13: 30:15 Fiech-bandeira stale-rates ON (10% do tráfego)
13: 41:00 State-rates 100%, p99 estabilizado 290ms
13: 52:40 Restrição de retrações em gateway
13h58: 00 Incidente encerrado, monitoramento de 30min
11. 2 Solutions and Validation (DoD)
Solução: ativar breaker (slow _ sucess)
DoD: chaos-cenário «+ 300ms para currency» - p99 <450ms, erro _ rate <0. 5%, stale_share < 12%
11. 3 Policy "gate" (check)
deny_release if any(postmortem_action. status!= "Done" and action. severity in ["critical"])
12) Anti-pattern
Caça às bruxas e punições, ocultação de erros, perda de sinais.
Protocolo por protocolo: documentos longos sem ação/proprietário/data limite.
Nível RCA «falha de código» sem fatores de sistema.
Encerrar o incidente sem retalhos ou atualizações de basline.
Falta de publicidade dentro da empresa: repetição dos mesmos erros em outros comandos.
Ignorar o feedback de safort/parceiros e degradações «invisíveis» (sucesso lento).
O resumo «tudo consertado, seguir em frente» - sem alterações na arquitetura/processo.
13) Folha de cheque do arquiteto
1. Há um único modelo de publicação pós-mortem e SLA ≤ 72 h?
2. Os papéis (IC, Comms, Scribe, SME) são atribuídos automaticamente?
3. As timelines são baseadas em telemetria (trailers/métricas/logs) e marcas de lançamentos/bandeiras?
4. As técnicas RCA são aplicadas em sistema (5 Why, Ishikawa, Barrier)?
5. As ações têm proprietários, prazos e DoD, estão relacionados com o risco e gates de lançamentos?
6. O incidente leva à atualização de runbook/xaoc-script/alerts?
7. Os canais estão integrados, há uma visão regular das dores?
8. Orçamento errado afeta políticas de lançamento e experimentação?
9. As métricas de maturidade são monitoradas (time-to-postmortem, reopen rate, repetível)?
10. Pesquisa interna pública e base de conhecimento com pesquisa estão disponíveis?
Conclusão
Pós-mórtemos e feedback é um mecanismo de aprendizagem da arquitetura. Quando os exames sem acusações, o efeito mensurável e a integração dos sinais da produção se tornam normais, o sistema torna-se mais sustentável, mais rápido e mais compreensível todas as semanas. Tornem os factos visíveis, as ações obrigatórias e o conhecimento acessível, e os incidentes tornam-se combustível para a evolução da vossa plataforma.