# Small Causes, Large Consequences: From the Butterfly Effect to Critical Systems

> An engineering analysis of chaos theory, the Lorenz attractor, thresholds, numerical error, feedback and fault propagation through Patriot, Mars, Ariane 5, Challenger, Chernobyl and modern computing systems.

- Author: Muhammet Ali Köker
- Language: en
- Canonical: https://alikoker.com.tr/en/small-causes-large-consequences-butterfly-effect-critical-systems
- Translation: https://alikoker.com.tr/kucuk-nedenler-buyuk-sonuclar-kelebek-etkisinden-kritik-sistemlere
- Published: 2026-09-09T00:31:00+03:00
- Modified: 2026-09-09T00:00:00+03:00
- Verified: 2026-09-09T00:31:00+03:00
- Type: article

Some outcomes are strikingly large compared with the events that initiate them. Everyday reasoning often assumes a rough proportion between cause and effect: large outcomes require large causes, while small changes should produce small deviations. That intuition works for many problems, but a significant class of real systems does not behave linearly.

The importance of a change depends not only on its magnitude. Its location in the system, the components that depend on it, whether it crosses a threshold, whether it enters a feedback loop, and whether it triggers other failures can matter more than the initial deviation itself.

Across software, real-time systems, signal processing, artificial intelligence, and cybersecurity, I have repeatedly encountered different forms of the same question:

**Where does a small change travel inside a system, and why does the system amplify it?**

That question provides a common frame for subjects that otherwise appear separate: the butterfly effect, fault propagation, numerical instability, cascading failures, feedback, and critical dependencies.

## Proportion between cause and effect

Consider a simple system:

```text
y=f(x)
```

If the input changes slightly,

```text
x'=x+δ
```

then the output becomes

```text
y'=f(x+δ)
```

and the output difference can be written as

```text
Δy=|f(x+δ)-f(x)|.
```

For a linear system, a small input change usually produces a small and predictable output change. If

```text
f(x)=2x,
```

then

```text
f(x+δ)-f(x)=2δ.
```

The intuition changes when a threshold is introduced:

```text
f(x) = 0,  x < T
       1,  x ≥ T
```

Although `T-ε` and `T+ε` are extremely close inputs, they produce different outputs.

This is not the butterfly effect. It is a decision boundary.

Small changes can grow through several distinct mechanisms: sensitivity to initial conditions, threshold behavior, accumulated numerical error, positive feedback, common-cause failure, fault propagation, and critical dependency. Treating all of them as “chaos” hides the engineering mechanism that actually matters.

A more useful general form is:

```text
small disturbance
→ amplification mechanism
→ propagation
→ system consequence.
```

The middle term is where the engineering analysis begins.

## The butterfly effect and the limit of prediction

Edward Lorenz's 1963 paper *Deterministic Nonperiodic Flow* became one of the foundational works for understanding how nearby initial states in deterministic nonlinear systems can diverge over time.[1]

Under suitable conditions, the growth of an initially small difference can be approximated by

```text
|Δ x(t)|≈|Δ x(0)|e^(λt).
```

A positive largest Lyapunov exponent is an important indicator of chaotic behavior in which nearby trajectories separate exponentially.

The three-variable nonlinear system studied by Lorenz is commonly written as:

```text
dx/dt=σ(y-x)
```

```text
dy/dt=x(ρ-z)-y
```

```text
dz/dt=xy-β z
```

With the widely used values `σ=10`, `ρ=28`, and `β=8/3`, the solution moves around a bounded, nonperiodic two-lobed structure in phase space. This structure, now known as the Lorenz attractor, is one of the best-known examples of chaotic dynamics.[1] A two-dimensional projection of the three-dimensional trajectory gives the familiar butterfly-like form. The shape itself, however, is not the definition of the butterfly effect. The essential property is that nearby initial states can diverge over time while evolving under the same deterministic equations.

When the Lorenz attractor is reduced to an icon, the two-lobed trajectory can be stylized. Such a drawing is a visual summary of the phase-space behavior rather than a numerically integrated trajectory. The attractor's fractal geometry and sensitive dependence arise from the system dynamics, not from the Bézier curves used to depict it.

The important distinction is:

```text
deterministic ≠ easily predictable over long horizons.
```

Known rules do not imply infinitely precise knowledge of the initial state. Measurement uncertainty and finite computational precision can eventually limit prediction.

This idea is powerful, but it should not be stretched to every case in which a small event has a large consequence. Most engineering failures have more concrete amplification mechanisms.

## The nail and the horseshoe: dependency matters more than size

An old proverb expresses the idea through a nail, a horseshoe, a horse, and the consequences that follow. Versions of it have been attributed to different people and periods, so it is safer to treat it as an old causal-chain proverb rather than a verified quotation from a particular historical figure.

Its logic is simple:

```text
nail
→ horseshoe
→ horse
→ mission
→ outcome.
```

No chaotic dynamics are required. The amplification mechanism is dependency.

The nail matters not because it is large, but because other things depend on it.

Engineering history provides much less metaphorical examples.

## Patriot: a small numerical error accumulated over time

On 25 February 1991, a Patriot missile-defense battery at Dhahran, Saudi Arabia, failed to track and intercept an incoming Scud missile. The missile struck a U.S. Army barracks, killing 28 soldiers. A U.S. General Accounting Office investigation found that a software problem in the weapon control computer produced an increasingly significant tracking error as operating time increased. The system had been running continuously for more than 100 hours.[2]

The causal chain can be summarized as:

```text
small representation error
→ accumulation over time
→ timing error
→ target position error
→ tracking failure.
```

For me, the enduring lesson is that short-term correctness does not prove long-term stability. Software can behave correctly for hours and still drift after prolonged operation because of counters, time bases, resource behavior, or accumulated numerical error.

In critical systems, elapsed operating time is itself a test dimension.

## Mars Climate Orbiter: the number was valid, the meaning was not

NASA lost the Mars Climate Orbiter during Mars orbit insertion on 23 September 1999. The mishap investigation identified a root cause in the ground software: a *Small Forces* data file was generated in English units while the interface specification required metric units, and the navigation software interpreted the data accordingly.[3][4]

The problem was not the syntactic validity of the number. It was its meaning.

```text
value + wrong unit
→ trajectory error
→ incorrect approach
→ mission loss.
```

A force value is not just a number:

```text
10N ≠ 10lbf.
```

The lesson I draw from this is that formal data compatibility is not semantic compatibility. Units, scale, sign convention, reference frames, and time bases are part of an interface contract just as much as the numeric representation.

The technology used to exchange data has changed since 1999, but the underlying problem has not: data can be perfectly valid in form and still be wrong in meaning.

## Ariane 5: old assumptions inside previously working software

The maiden flight of Ariane 5 failed on 4 June 1996, roughly 40 seconds after the start of the flight sequence. The European Space Agency inquiry concluded that the loss of guidance resulted from specification and design errors in the inertial reference system software, and both inertial reference systems failed for the same reason.[5]

Software inherited from Ariane 4 carried assumptions that did not hold for Ariane 5's flight profile. A value exceeded the expected range, a conversion to a narrower integer representation raised an exception, and valid guidance information was lost.

```text
old assumption
→ new flight conditions
→ range overflow
→ software exception
→ loss of guidance.
```

The deeper point concerns redundancy. There were two inertial reference units, but both shared the same design and software assumption.

```text
redundancy ≠ failure independence.
```

The same principle appears in software systems today. Two components that share the same faulty configuration, corrupted input, or incorrect assumption may fail together even when they are physically separate.

## Challenger: a small component and system-level criticality

Space Shuttle Challenger broke apart 73 seconds after launch on 28 January 1986. The Rogers Commission traced the accident to defects in the design of the right Solid Rocket Booster field joint and its O-ring sealing behavior. The Commission also criticized the normalization of evidence from earlier flights and tests that had shown the joint problem.[6][7]

An O-ring is physically small compared with a space shuttle, but criticality is not measured by size.

```text
small component ⇏ small risk.
```

Challenger also shows that the technical system and the decision system cannot always be separated. The existence of engineering evidence does not protect a system by itself. The evidence must reach the right people, be interpreted correctly, and influence the decision.

```text
finding
→ communication
→ evaluation
→ decision.
```

That chain is part of system design too.

## Chernobyl: not one small cause, but mutually reinforcing conditions

The Chernobyl disaster of 26 April 1986 cannot be explained by a single operator mistake or a single control action. The later IAEA INSAG-7 assessment shifted greater emphasis toward reactor design, control-rod characteristics, safety systems, and deficiencies in Soviet nuclear-safety management.[8]

One mechanism especially relevant to this discussion was the large positive void coefficient of the RBMK reactor under the accident conditions. In certain states, more steam formation could increase reactivity; higher power could then generate still more steam.[8]

```text
steam↑
→ reactivity↑
→ power↑
→ steam↑.
```

This is positive feedback.

Chernobyl is therefore better understood here not as a “tiny error that became a disaster,” but as a system accident in which design characteristics, operating state, and safety management combined to eliminate safety margin.

The engineering lesson is broader: a system can amplify a deviation through its own dynamics instead of damping it.

## Therac-25: when software state becomes physical consequence

Between 1985 and 1987, Therac-25 radiation-therapy machines were associated with six known massive radiation overdoses. Nancy Leveson and Clark Turner showed that the accidents should not be reduced to a single software bug; software design, system architecture, user interaction, safety mechanisms, and regulatory practices all contributed.[9]

Therac-25 is particularly important because software state could directly affect physical energy delivered to a patient:

```text
software state
→ control decision
→ physical output
→ human.
```

A race condition in a desktop application may corrupt a display. A race condition in a medical device can affect a physical dose. The risk of the same class of defect therefore changes with system context.

A rare error is not necessarily an insignificant error.

## Mars Polar Lander: separating a sensor signal from an event

Mars Polar Lander was lost during its arrival at Mars on 3 December 1999. Because no telemetry was available to establish the failure directly, the exact cause could not be determined. NASA's special review board identified as a leading scenario the possibility that transient signals generated when the landing legs deployed were interpreted as touchdown, causing premature shutdown of the descent engines.[10]

This case requires probabilistic language rather than certainty.

The proposed chain was:

```text
mechanical motion
→ transient sensor signal
→ incorrect state interpretation
→ premature engine shutdown
→ fall.
```

The example captures a distinction that is familiar in real-time signal-processing work: a sensor observation is not automatically the system state.

```text
measurement ≠ state.
```

A detector produces evidence. Software assigns meaning to that evidence.

## Knight Capital: one machine left in a different software state

On 1 August 2012, a deployment error in Knight Capital's automated equity-routing system caused millions of erroneous orders to reach U.S. markets in roughly 45 minutes. According to the U.S. Securities and Exchange Commission, one of eight SMARS servers was not updated with the new software. Obsolete *Power Peg* functionality was reactivated on that server, and Knight ultimately lost more than $460 million.[11][12]

```text
one server in a different state
→ different behavior
→ erroneous orders
→ large financial loss.
```

The incident demonstrates that deployment is not complete merely because installation commands have run. Operational success requires confirming that every active node has the intended software and configuration.

A single inconsistent node can break system-wide behavioral assumptions.

## AT&T: when recovery behavior becomes propagation behavior

On 15 January 1990, AT&T's U.S. long-distance telephone network suffered a major outage. Contemporary technical accounts and AT&T's explanation traced the event to a software logic flaw in electronic switching systems. Recovery messages following a switch restart could trigger the same faulty condition in other switches, producing cascading restarts.[13]

```text
A restarts
→ B is affected
→ B restarts
→ C is affected.
```

The important idea is that a mechanism intended to recover from failure can itself become part of the failure-propagation path.

The same mathematical pattern appears in modern distributed software when retries are not bounded or coordinated:

```text
latency
→ timeout
→ retry
→ extra load
→ more latency.
```

A protective mechanism that enters a positive feedback loop can amplify the problem it was designed to mitigate. This is one of the reasons I treat retry behavior as part of capacity and stability design rather than as a harmless client-side convenience. The same issue is discussed more directly in [Safe Retry Design in Critical Systems](/en/safe-retry-design-in-critical-systems) and [Queue Stability in ASR Systems](/en/queue-stability-in-asr-systems).

## The 2003 North American blackout: losing visibility of system state

The 14 August 2003 blackout across large parts of the United States and Canada did not have a single software cause. The U.S.-Canada Power System Outage Task Force identified interacting failures that included inadequate understanding of the system, vegetation contact, loss of situational awareness, and failures in alarm-processing functions.[14][15]

One important software contribution was that operators did not receive the information needed to recognize the deteriorating grid state quickly enough.

Let the actual system state be `S` and the operator's observed state be `Ŝ`. If

```text
S≠Ŝ,
```

then the operator is making decisions from an inaccurate model of reality.

For this reason I do not treat observability as merely the collection of logs and metrics. In critical systems, accurate observability is part of reliability because it supports the model from which operators act.

## Tacoma Narrows: the system response amplifies the disturbance

The Tacoma Narrows Bridge collapsed on 7 November 1940 after large torsional oscillations developed in wind. Popular accounts often reduce the event to simple resonance; the fuller engineering explanation involves aeroelastic instability and torsional flutter.[16][17]

For this discussion, the key point is that wind alone does not explain the outcome:

```text
outcome=f(external disturbance, system dynamics).
```

The same disturbance will not produce the same consequence in every structure. The system's own dynamics determine whether the disturbance is damped or amplified.

Signal processing expresses the same general idea in another form:

```text
Y(f)=H(f)X(f).
```

The same input can produce different outputs in different systems.

## Pentium FDIV: a rare error that violates a basic trust assumption

In 1994, it became public that certain Intel Pentium processors could produce incorrect results for particular floating-point division operations. The triggering operands were rare, but the defect violated a basic contract expected of the processor: arithmetic operations should meet their specified accuracy.[18][19]

The important question is therefore not only how frequently a fault appears.

When an application performs

```text
a/b,
```

it assumes that the hardware below it satisfies defined numerical guarantees.

Layered systems rely on such assumptions:

```text
application
→ runtime
→ operating system
→ processor
→ hardware.
```

A silent fault in a lower layer can invalidate computations above it.

## Heartbleed: a small validation omission and a large disclosure boundary

Heartbleed, disclosed in 2014 as CVE-2014-0160, resulted from a missing bounds check in OpenSSL's implementation of the TLS/DTLS heartbeat extension. A crafted heartbeat request could cause a connected peer to return data beyond the intended payload, revealing portions of process memory.[20]

Conceptually, the problem was simple:

```text
claimed length ≠ actual length,
```

without sufficient validation of that relationship.

The consequence was:

```text
missing validation
→ out-of-bounds read
→ process memory disclosure.
```

The number of lines involved in a defect says little about its security impact. A missing check at a trust boundary can expose far more than the local code suggests. This is closely related to the broader engineering principles discussed in [Secure Software Engineering](/en/secure-software-engineering-applied-cybersecurity).

## Log4Shell: when data becomes behavior

CVE-2021-44228, disclosed in 2021, affected Apache Log4j 2. Under vulnerable configurations and versions, JNDI functionality could allow attacker-controlled log messages or parameters to reach attacker-controlled LDAP or other JNDI endpoints and, in applicable conditions, lead to remote code execution.[21][22]

The ordinary expectation is:

```text
text
→ log record.
```

The vulnerability broke the expected boundary between data and behavior.

That boundary is also relevant to contemporary AI systems. Natural language can carry both data and instructions, so systems that connect language models to tools or external actions must define where untrusted content is allowed to influence behavior.

## Small decisions in real-time speech processing

When I return from these historical cases to systems I work with directly, the same pattern appears at a smaller scale but with much higher frequency.

A real-time automatic speech-recognition pipeline is not simply

```text
audio→ model→ text.
```

In practice it is closer to:

```text
audio
→ preprocessing
→ voice activity detection
→ segmentation
→ model
→ postprocessing
→ text.
```

A small difference in the waveform should normally be harmless. But if the difference occurs near a threshold, it can change the segmentation decision:

```text
small difference
→ different segment
→ different context
→ different decoding
→ different transcript.
```

This is not classical chaos. It is threshold-induced state divergence.

That is why I consider model accuracy alone an incomplete measure of an AI system. Decisions made before inference determine what the model sees. The interaction among VAD, segment duration, and endpointing is examined in more detail in [VAD, Segment Duration, and Endpointing Trade-offs in Real-Time ASR](/en/vad-segmentation-endpointing-tradeoffs-in-real-time-asr), while the system-level load dimension is covered in [Capacity Engineering for Real-Time Speech Recognition](/en/capacity-engineering-real-time-speech-recognition).

## Divergence in state machines

A state machine can be represented as

```text
S_(n+1)=F(S_n,x_n).
```

If a small input difference produces a different transition,

```text
F(S_n,x_n)≠ F(S_n,x_n+ε),
```

then the two executions are now in different states.

Even if subsequent inputs are identical, their future behavior can remain different. This is one reason a few milliseconds of timing difference in real-time systems can occasionally produce disproportionately different behavior.

## Decision boundaries in artificial intelligence

An AI model may produce

```text
f(x)=A
```

and then, after a small perturbation,

```text
f(x+δ)=B.
```

Adversarial-example research demonstrates that changes that appear small to a human observer can cross a model's decision boundary.

The engineering question is therefore not merely average accuracy:

**When the model is wrong, how far can the rest of the system be wrong?**

If a model output triggers later decisions or automation, the propagation path of model error is part of the system risk. I discuss the broader theoretical and production context of this distinction in [Artificial Intelligence: Philosophy, Theory and Practice](/en/artificial-intelligence-philosophy-theory-practice).

## Amplification of small latency in distributed systems

One of the most common amplification patterns I see in high-throughput software is the interaction among latency, timeouts, and retries:

```text
latency↑
→ timeout
→ retry
→ load↑
→ latency↑.
```

The system may begin with only a handful of slow operations. Once the feedback loop forms, connection pools can saturate, queues can grow, and otherwise healthy requests can also time out.

The system is now amplifying its own problem.

That is why average latency is not enough. Queue length, percentile latency, resource saturation, timeout rate, and retry behavior must be considered together. [Real-Time ASR Latency Budget](/en/real-time-asr-latency-budget) is one concrete example of separating those contributions instead of collapsing them into a single performance number.

## Small differences in numerical computation

Computers cannot represent all real numbers with infinite precision. As a result, the identity

```text
(a+b)+c=a+(b+c)
```

from real arithmetic does not guarantee bit-identical results under floating-point evaluation:

```text
fl(fl(a+b)+c)≠ fl(a+fl(b+c)).
```

Most such differences are harmless.

But if the result feeds a threshold,

```text
y<T
```

versus

```text
y+ε≥ T
```

can send execution down different paths.

The mechanisms then compose:

```text
numerical difference
→ threshold
→ state divergence.
```

Across CPUs, GPUs, different precision formats, and parallel reduction orders, the important question is not only how large the numerical difference is, but what decision depends on it. The hardware side of these assumptions connects naturally to [Computer Architecture: Instruction Sets, Pipelining and Memory Systems](/en/computer-architecture-instruction-sets-pipelines-memory).

## The avalanche effect and a single bit in cybersecurity

In cryptography, amplification of a small input difference can be intentional. The avalanche effect describes the desired diffusion in which a small input change affects many output bits.

```text
one input bit changed
→ many output bits changed.
```

Here amplification is a design property, not a defect.

The same single-bit change can mean something entirely different in hardware or memory. A bit upset can create a corrupted state and, depending on where it occurs, change later decisions.

```text
bit change
→ corrupted state
→ incorrect decision.
```

Small-change amplification is therefore neither inherently good nor inherently bad. The system objective and the mechanism determine its meaning.

## Digital forensics: following the chain backward

Engineering usually reasons from

```text
cause→ effect.
```

Digital forensics often starts with the effect:

```text
effect
→ event chain
→ initiating cause.
```

When a large failure has already occurred, the final error message is rarely enough. Timing changes, software versions, logs, user actions, resource consumption, and network behavior have to be reconstructed together.

The large consequence is often explained not by the last event, but by the propagation path of a smaller deviation that began earlier.

## A small fault is not the same as a small effect

The common point across these examples is:

```text
small fault ≠ small effect.
```

As an engineering heuristic, impact can be thought of as depending on three terms:

```text
Impact
≈
Disturbance
×
System Sensitivity
×
Propagability.
```

This is not a physical law. It is a useful way to inspect a system.

A small fault may be damped and disappear. The same-sized fault at a threshold, on a central dependency, or inside a positive feedback loop can produce a very different outcome.

## Resilience: keeping a small fault small

It is impossible to eliminate every disturbance from a real system.

Sensors are noisy. Networks are delayed. Packets are lost. Storage slows down. Floating-point calculations have finite precision. AI models are occasionally wrong.

The realistic goal is therefore not

```text
δ=0.
```

The goal is to keep the system consequence within acceptable bounds when

```text
δ≠0.
```

Depending on the problem, this is achieved with fault isolation, hysteresis, backpressure, load shedding, bounded retry, circuit breakers, independent redundancy, idempotent operations, error correction, and numerically stable algorithms.

The techniques differ. The objective is the same:

```text
small fault
→ small effect.
```

This is also why verification and validation matter in critical software: they are not attempts to prove that disturbance will never exist, but ways to discover where the system fails to contain it. [Software Test Engineering](/en/software-test-engineering-applied-verification-validation) discusses that boundary from the verification side.

## Conclusion

The butterfly effect is a useful starting point for thinking about large consequences from small changes. Engineering, however, requires a more precise question:

**Which small changes does the system amplify, and why?**

In Patriot, the mechanism was an accumulated timing calculation error.

In Mars Climate Orbiter, it was a unit mismatch.

In Ariane 5, an inherited assumption became invalid under a new flight profile and was shared by redundant systems.

In Challenger, a critical joint design interacted with technical evidence and organizational decisions.

At Chernobyl, reactor physics, design, operating conditions, and safety management reinforced one another.

In Therac-25, software state reached a physical output.

For Mars Polar Lander, a leading failure scenario involved a transient sensor signal being interpreted as a system state.

At Knight Capital, one server left in a different software state propagated financial consequences.

In the AT&T outage, recovery behavior became a failure-propagation mechanism.

During the 2003 blackout, loss of situational awareness combined with physical grid problems.

At Tacoma Narrows, the structure's own dynamics amplified the external disturbance.

Pentium FDIV violated a basic hardware trust assumption.

Heartbleed showed how a missing bounds check could cross a large confidentiality boundary.

Log4Shell showed how critical the boundary between data and behavior can be.

In real-time systems, the same general pattern can appear in a few milliseconds of timing difference, a threshold decision, or a single state transition.

Large failures are easy to recognize after they happen. The more valuable engineering task is to identify, while they are still small, which deviations have a path to grow.

The point is not that the nail is small.

**The point is what the nail is holding together.**

---

## References

1. Edward N. Lorenz. (1963). “Deterministic Nonperiodic Flow.” *Journal of the Atmospheric Sciences*, 20(2), 130–141. DOI: 10.1175/1520-0469(1963)020<0130:DNF>2.0.CO;2. [Source](https://doi.org/10.1175/1520-0469(1963)020%3C0130:DNF%3E2.0.CO;2)
2. U.S. General Accounting Office. (1992). *Patriot Missile Defense: Software Problem Led to System Failure at Dhahran, Saudi Arabia* (IMTEC-92-26). [Source](https://www.gao.gov/products/imtec-92-26)
3. NASA. (1999). *Mars Climate Orbiter Mishap Investigation Board Phase I Report*. [Source](https://discovery.larc.nasa.gov/pdf_files/MCO_report_2.pdf)
4. NASA Lessons Learned Information System. *Mars Climate Orbiter Mishap Investigation Board — Phase I Report*, Lesson 641. [Source](https://llis.nasa.gov/lesson/641)
5. European Space Agency. (1996). *Ariane 501 — Presentation of Inquiry Board Report*. [Source](https://www.esa.int/Newsroom/Press_Releases/Ariane_501_-_Presentation_of_Inquiry_Board_report)
6. Presidential Commission on the Space Shuttle Challenger Accident. (1986). *Report of the Presidential Commission on the Space Shuttle Challenger Accident*. NASA.
7. NASA History Office. *Report of the Presidential Commission on the Space Shuttle Challenger Accident*, O-ring and launch-temperature evidence. [Source](https://www.nasa.gov/history/rogersrep/v5p1206.htm)
8. International Nuclear Safety Advisory Group / IAEA. (1992). *The Chernobyl Accident: Updating of INSAG-1*, Safety Series No. 75-INSAG-7. [Source](https://www-pub.iaea.org/MTCD/Publications/PDF/Pub913e_web.pdf)
9. Nancy G. Leveson; Clark S. Turner. (1993). “An Investigation of the Therac-25 Accidents.” *Computer*, 26(7), 18–41. DOI: 10.1109/MC.1993.274940
10. JPL Special Review Board. (2000). *Report on the Loss of the Mars Polar Lander and Deep Space 2 Missions*, JPL D-18709. [Source](https://solarsystem.nasa.gov/system/internal_resources/details/original/3338_mpl_report_1.pdf)
11. U.S. Securities and Exchange Commission. (2013). *In the Matter of Knight Capital Americas LLC*, Administrative Proceeding File No. 3-15570. [Source](https://www.sec.gov/Archives/edgar/data/1569391/000119312513401173/d613486dex101.htm)
12. U.S. Securities and Exchange Commission. (2013). “SEC Charges Knight Capital With Violations of Market Access Rule.” [Source](https://www.sec.gov/newsroom/press-releases/2013-222)
13. Peter G. Neumann. (1990). “Cause of AT&T network failure.” *The RISKS Digest*, 9(62), preserving a contemporary AT&T technical explanation. [Source](https://catless.ncl.ac.uk/risks/9.62.html)
14. U.S.-Canada Power System Outage Task Force. (2004). *Final Report on the August 14, 2003 Blackout in the United States and Canada: Causes and Recommendations*. [Source](https://www.energy.gov/documents/blackoutfinal-webpdf)
15. Federal Energy Regulatory Commission. *Power Blackout — August 14, 2003 Investigation and Reports*. [Source](https://www.ferc.gov/industries-data/electric/overview/electric-reliability/power-blackout)
16. Federal Highway Administration. *Framework for Improving Resilience of Bridge Design*, section on the 1940 Tacoma Narrows Bridge collapse. [Source](https://www.fhwa.dot.gov/bridge/pubs/hif11016/hif11016.pdf)
17. Federal Highway Administration. “November 7 — Tacoma Narrows Bridge collapse.” [Source](https://www.fhwa.dot.gov/byday/fhbd1107.htm)
18. Thomas R. Nicely. (1994). Early technical reports on the Pentium floating-point division flaw, preserved in the NA Digest archive. [Source](https://www.netlib.org/na-digest-html/94/v94n48.html)
19. Tim Coe; Terje Mathisen; Cleve Moler; Vaughan Pratt. (1995). “Computational Aspects of the Pentium Affair.” *IEEE Computational Science & Engineering*, 2(1), 18–30. DOI: 10.1109/99.372929.
20. OpenSSL. (2014). CVE-2014-0160, TLS heartbeat read overrun (Heartbleed). [Source](https://openssl-library.org/news/vulnerabilities/)
21. Apache Software Foundation. “Apache Log4j Security Vulnerabilities — CVE-2021-44228.” [Source](https://logging.apache.org/security.html)
22. National Institute of Standards and Technology, National Vulnerability Database. “CVE-2021-44228.” [Source](https://nvd.nist.gov/vuln/detail/CVE-2021-44228)

## Cite This Work

Köker, M. A. (2026). Small Causes, Large Consequences: From the Butterfly Effect to Critical Systems. alikoker.com.tr. https://alikoker.com.tr/en/small-causes-large-consequences-butterfly-effect-critical-systems

- BibTeX: https://alikoker.com.tr/en/small-causes-large-consequences-butterfly-effect-critical-systems.bib
- RIS: https://alikoker.com.tr/en/small-causes-large-consequences-butterfly-effect-critical-systems.ris
- CSL-JSON: https://alikoker.com.tr/en/small-causes-large-consequences-butterfly-effect-critical-systems.csl.json
