direction: down Data system: { shape: rectangle } Reliability: { label: "Reliability\ncontinues to work\ncorrectly under faults" shape: rectangle } Scalability: { label: "Scalability\nreasonable ways to\ncope with growth" shape: rectangle } Maintainability: { label: "Maintainability\nmany people can work\non it productively" shape: rectangle } Hardware faults: { label: "Hardware faults\ndisk dies, power fails" shape: rectangle } Software errors: { label: "Software errors\nbugs, runaway processes" shape: rectangle } Human errors: { label: "Human errors\nmisconfiguration" shape: rectangle } Load parameters: { label: "Load parameters\nrequests/sec, fan-out,\nread/write ratio" shape: rectangle } Percentiles: { label: "Performance\np50, p95, p99" shape: rectangle } Scale up: { label: "Scale up\nbigger machine" shape: rectangle } Scale out: { label: "Scale out\nmore machines" shape: rectangle } Operability: { label: "Operability\nops can keep it running" shape: rectangle } Simplicity: { label: "Simplicity\nnew engineers understand it" shape: rectangle } Evolvability: { label: "Evolvability\nfuture changes are easy" shape: rectangle } Data system -> Reliability Data system -> Scalability Data system -> Maintainability Reliability -> Hardware faults Reliability -> Software errors Reliability -> Human errors Scalability -> Load parameters Scalability -> Percentiles Scalability -> Scale up Scalability -> Scale out Maintainability -> Operability Maintainability -> Simplicity Maintainability -> Evolvability