Dual World Theory | Causality-Oriented Architecture Notes
Skip to main content
On this page
Background: Von Neumann and OOP
The von Neumann model is built around memory, state, instructions, and state transitions. Memory is spatial; data lives at addresses; computation is expressed as operations over that space. At a deep level, a program describes what exists in memory at a given moment.
That model is extraordinarily powerful, but it is also, fundamentally, a spatial metaphor .
Object-oriented programming inherits that worldview and encapsulates and refines it into classes, objects, inheritance, and composition. An object is a named space; a method is an operation performed on that space. OOP is almost entirely an expression of spatial metaphors — containment, nesting, hierarchy, structure — and has almost no temporal metaphors — events, evolution, adjudication, causality.
As software engineering has developed, however, almost all of its greatest engineering complexity has turned out to be temporal: concurrency, distributed systems, consistency, transactions, messaging, timeouts, synchronization.
In the object-oriented worldview:
World=Current StateWorld = Current\ StateWorld=Current State<br>Change then appears as:
State1→State2→State3State_1 \rightarrow State_2 \rightarrow State_3State1→State2→State3<br>Causality becomes privatized and fragmented. Each object owns a slice of state, mutates that state through its own methods, or reaches into other objects through callbacks and side effects (a change in spatial content).
History is therefore split into countless fragments scattered across private object space. No unified causal narrative protects continuity of identity.
Spatial models optimize for static clarity: clean boundaries, clear hierarchies, intuitive composition. Temporal models optimize for dynamic clarity: traceable causality, narratable history, adjudicable conflict.
When a fundamentally temporal problem is forced into a spatial structure, time gets fragmented, hidden, and privatized.
At bottom, this is coupling the temporal dimension through spatial modeling.
Dual World Theory
Dual World Theory asserts that any system that persists through time must distinguish how world facts are formed from how the world is perceived and presented .
Any complex system that must persist through time while continuously exchanging information with the outside world faces two simultaneous requirements:
It must preserve the continuity of its own history.
It must keep absorbing external change.
If a system ignores external change entirely, it drifts out of touch with its environment and loses adaptability. But if each new change simply overwrites the past, the system cannot form history, context, or identity.
A persistent world must therefore keep incorporating new change into an existing history, so that the future remains grounded in the past.
Under that pressure, two cooperating mechanisms emerge:
Causal Layer : receives events, interprets them, adjudicates relational change, and maintains an explainable history of facts. Its core assets are fact history and adjudication rules, with pending events entering adjudication as input. It corresponds to the temporal dimension of the system: irreversibility, sequence, and causal continuity.
Perception Layer : senses the environment, processes change, and produces experience. It translates external change into usable signals. It corresponds to the spatial dimension : simultaneous perception and parallel presentation.
Together they form a feedback loop:
External World -> Perception Layer detects -> reports event -> Causal Layer adjudicates
External World
Causal Layer
There is an old philosophical question: what is the world made of? One answer points to substances and entities, as in object-oriented thinking; another points to relations and process — that is, process philosophy. The Causal Layer is rooted in process philosophy.
State answers one question: "What is the world like right now?" But any system that persists must also answer: "Why did the world become this way?"
Therefore, the essence of the Causal Layer is to preserve historical continuity and causal explainability . State is merely the current projection of historical facts — if the events that produced the state are missing, the state itself becomes meaningless.
To the system, the external world presents itself as disordered, concurrent, and potentially conflicting. The Causal Layer turns external change into stable, traceable history through adjudication :
Validity checks : does this request meet the conditions required to take effect?
Semantic transformation : what does this event actually mean in context?
Conflict adjudication : when events collide, which factual version enters history?
Perception Layer
The Perception Layer answers: how is the world experienced and presented?
The Causal Layer produces discrete facts. The Perception Layer unfolds those facts into...