Why GraphReFly

Software becomes hard to change when it has more than one version of the truth.

Code, workflow state, diagrams, logs, and AI context drift apart. GraphReFly makes one executable graph the shared source of truth for state, computation, and consequences.

model drift

Your system already produces plenty of information. It does not produce one coherent explanation.

Stores show values, traces show calls, diagrams show intent, and AI summarizes whatever context it receives. The hard question is which representation still matches the system that actually ran.

How each representation can drift from execution
RepresentationWhat it can tell youWhat can still drift
State storeWhat values exist nowWhy they changed and what depends on them
AST or source indexWhere code is definedRuntime data dependencies and consequences
DiagramWhat someone intendedWhether execution still follows it
Logs and tracesWhat was recordedCurrent topology, omitted events, and domain meaning
AI contextWhat the model was givenWhether that context is current, complete, or authoritative
GraphReFly graphDeclared state, dependencies, and computationExternal evidence remains explicit rather than silently assumed

Adding another representation does not solve model drift. The representation has to participate in execution.

executable truth

It is the system.

Visible edges are real dependencies: shared state enters as nodes, computation follows those edges, and effects stay connected to their causes. Private machinery can remain abstracted, but the facts and relationships that determine behavior cannot.

Abstraction without a second version of the truth.

coherence

Every calculation can be correct while the result is still wrong.

An address change fans out through tax, shipping, availability, and the order total. If the shared result publishes before those paths settle, every function can be locally correct while the customer sees a globally wrong answer.

Delivery address

Without GraphReFly

Application code manually invalidates results, tracks pending branches, and decides when enough callbacks have completed. That coordination becomes a second workflow hidden beside the calculations.

With GraphReFly

Within one graph update, the address change moves through declared dependencies. Affected branches become dirty before new values settle. Their shared downstream result waits until the registered paths have settled, then publishes one coherent answer.

One change. Many consequences. One coherent result.

The same pattern appears wherever several facts converge into one decision, view, policy, plan, or agent result.

context

Give each participant what it depends on, not one global state and not a disconnected fragment.

Global state makes every consumer appear to depend on everything, while hand-built context creates another stale copy. A declared graph lets each participant inspect the path it actually depends on without losing its place in the larger causal structure.

Smaller context, without a second version of the truth.

AI makes the tradeoff obvious: it needs less context, but that context must still match execution.

evidence

GraphReFly provides the causal evidence. Humans and agents explain it.

Live topology, current values, and ordered runtime events show what exists, what changed, and where the change moved. Humans, tools, or models can explain that evidence, but the explanation remains checkable against the graph.

The explanation may be generated. The evidence should not be.

boundaries

Keep different timing and failure modes honest.

Files, networks, workers, models, databases, and remote graphs have timing and failure modes that do not behave like synchronous graph computation. Keep that work behind explicit boundaries, then return its requests, outcomes, status, and consequences as graph-visible facts.

Private machinery must not become hidden shared truth.

Durable execution and recovery can later integrate at the same boundary without creating another authoritative workflow model.

before and after

What GraphReFly changes

Without GraphReFly

The real system emerges from code, callbacks, stores, queues, logs, and undocumented conventions. Developers and agents reconstruct it differently each time.

With GraphReFly

Declared topology carries real computation. Shared state stays connected to its consumers. Related consequences settle coherently. Inspection reads from the same graph the application runs.

GraphReFly does not eliminate code, storage, logs, or external runtimes. It gives them one executable causal structure to connect through.

adoption

Start with the result your team understands least.

Start where connected change already creates coordination glue or repeated confusion.

  • a derived decision fed by several facts
  • a policy path that is difficult to explain
  • a fan-out/fan-in calculation
  • a read model maintained through manual invalidation
  • an agent step surrounded by validation, fallback, and review
  • a subsystem whose diagram and implementation no longer agree

Replace one shadow workflow with one executable graph. Then decide whether the surrounding system should follow.

The direction

Today, software produces consequences faster than people can understand them.

We believe software should be able to explain, and eventually answer for, what it changes.