Free — no signup required

The Taxonomy of Ignorance: Unknown Unknowns

2 min read

Before you can engineer for the unthinkable, you need a framework for categorizing what you don't know. Donald Rumsfeld — in a 2002 press briefing — articulated a model that has since become foundational in risk management:

  1. Known Knowns: Things we know we know.
  2. Example: "I know the database will slow down if traffic doubles."
  3. Engineering response: Add read replicas and connection pooling.

  4. Known Unknowns: Things we know we don't know.

  5. Example: "I don't know exactly when this hard drive will fail, but I know it will eventually."
  6. Engineering response: Add RAID, automated backups, and disk health monitoring.

  7. Unknown Unknowns (The Killer): Things we don't even know we don't know.

  8. Example: A shark bites the undersea fiber optic cable connecting two continents. A leap second bug causes every Linux server to freeze simultaneously. A solar flare disrupts GPS timing signals that financial systems depend on.

The first two categories are manageable with standard SRE practices — runbooks, alerting, capacity planning. The third category is where Black Swan Engineering lives.

Strategy: General Resilience

You cannot write a specific runbook for an Unknown Unknown. By definition, you don't know what it is. Writing a playbook for "shark attacks the cable" doesn't help you when the actual event is "a cosmic ray flips a bit in a router's memory."

Instead, you build General Resilience — architectural properties that help your system survive any unexpected shock, regardless of its specific cause:

  • Loose coupling: Components fail independently rather than cascading.
  • Heavy buffers: Queues, caches, and pre-provisioned capacity absorb sudden demand spikes.
  • Graceful degradation: The system sheds non-critical functionality rather than collapsing entirely.
  • Minimal blast radius: Failures are contained to the smallest possible scope.

The goal is not to predict the failure mode. The goal is to make the system robust enough that the specific failure mode doesn't matter.

Interview Tip

Interviewers at senior SRE/Platform Engineering levels often ask: "How do you design for failures you can't anticipate?" The weak answer is "we have good monitoring." The strong answer references the Known/Unknown framework, explains the difference between reliability (handling expected failures) and resilience (absorbing unexpected shocks), and describes concrete architectural patterns like loose coupling, static stability, and graceful degradation. Naming Taleb's framework and connecting it to real engineering decisions signals genuine depth.

This is one of 18 chapters

Every chapter is free — Kubernetes, Terraform, SRE, distributed systems, and more — with fast daily review built in.

Sign up free