Aug 24, 2026

OSGi, Cordiverse, and Datom.world: The Evolution of Dynamic Composability

For decades, software engineers have struggled with the dynamic lifecycle of components within long-running processes. OSGi pioneered dynamic module loading in Java, while Cordiverse formalizes it mathematically with revertible effects. Datom.world approaches the same problem by sidestepping mutable state entirely, leveraging immutable streams and treating the AST as queryable datoms to make dynamic composition structural rather than imperative.

Read the article →
Aug 23, 2026

Leibniz's Monad Model and Datom.world: Windowless Computation in an Open Moduli Space

Three centuries before distributed systems, Gottfried Wilhelm Leibniz formulated the Monadology: a reality of indivisible, windowless substances coordinating without shared physical contact. Datom.world realizes this metaphysics as a computational architecture. By treating datoms as relational events, agents as windowless continuation machines, semantics as external interpretation, and coordination as stigmergy over immutable streams, Datom.world bridges 17th-century rationalism with 21st-century distributed systems.

Read the article →
Aug 23, 2026

The History and Architecture of Monads: From Category Theory to Clojure

Monad tutorials in computer science are notoriously opaque. For Clojure developers accustomed to immutable data, threading macros, and unbundled atoms, monads can seem like an alien construct. This article traces monads from their 1950s origins in category theory through Eugenio Moggi and Philip Wadler's effect revolution in Haskell, and explains how monads relate to Clojure idioms, macros, and continuation machines.

Read the article →
Aug 18, 2026

Datom.world and Rama: Two Paths to the Post-Database Era

Both Datom.world and Nathan Marz's Rama start from the exact same premise: traditional databases are a category error, and data should be managed as immutable logs and projected views. However, their solutions take different paths. Where Rama unifies infrastructure into a highly programmable, integrated platform, Datom.world uses strict abstraction boundaries and mobile continuations to remain open and composable.

Read the article →
Aug 17, 2026

The Evolution of Immutable Storage: From Datomic to dao.jing

Datomic revolutionized databases by introducing the "database as a value." However, its storage model evolved to address the tension of storing a mutable root alongside immutable segments. By examining this history, we see why the strict abstraction boundaries of dao.jing and dao.stream represent the structural endgame of this architectural lineage, elegantly scaling from distributed cloud to embedded single-process deployments.

Read the article →
Aug 16, 2026

The Data Lake Is Just One Point in the Moduli Space

Modern architecture treats data lakes, operational databases, and vector stores as separate silos requiring costly ETL replication. In Datom.world, a data lake is not a silo or a monolithic engine: it is simply an interpreter point in the open moduli space of databases, projecting columnar scans and point queries over the shared, content-addressed substrate of DaoJing—which itself can reside directly on Amazon S3.

Read the article →
Aug 14, 2026

Datom.world: A Moduli Space of Databases

Datom.world does not prescribe one universal database. It supplies a stream substrate and a core axiom: semantics are external to the stream. An interpreter observes streams and materializes data structures; the observation fixes a point in the moduli space of possible databases.

Read the article →
Aug 13, 2026

Datalog on an n-tuple Tuple Space

I once argued that every piece of information should be a five-slot datom. Mixed-dimensional Datalog changed my mind: over an open n-tuple tuple space , relations of different dimensions can meet through shared variables, while the five-slot datom remains a powerful local contract.

Read the article →
Jul 21, 2026

The Colony and the Crowd: How Agents Collaborate on a Tuple Space

Coding agents do not need an orchestrator to collaborate. They need a shared medium . Once agents coordinate by leaving and reading traces on a tuple space, three famous models of collective intelligence (Mixture-of-Agents, the ant colony, and the wisdom of the crowd) stop looking like rivals and start looking like points in one design space. This is how they compose in dao.space: MoA is a circuit, the hive is a search, the crowd is a judge, and the tuple space is the substrate that lets you run all three at once.

Read the article →
Jul 18, 2026

Snapshot the Continuation, Not the VM: datom.world vs GKE's Agent Substrate

GKE's Agent Sandbox suspends agents by freezing entire pod memory images. datom.world suspends agents by persisting their continuation as datoms: only the kernel of the computation. By communicating with legacy libraries over streams (pi-calculus) instead of linking them in-process, agent state never entangles with library state. The result is lightweight, architecture-neutral agents (written in Python, Clojure, JS, or PHP) that suspend, migrate, and resume seamlessly via dao.space.

Read the article →
Jun 27, 2026

Multi-agent Collaboration with Tuple Spaces

Biological systems coordinate at scale using stigmergy: indirect coordination through a shared environment, like ants leaving pheromone trails. The tuple space is stigmergy made formal, a shared space where processes read and write facts instead of addressing each other. This piece traces the fifty-year evolution of that idea into dao.space , which finally makes the stigmergic medium durable, content-addressed, and trust-bounded by combining it with Datomic's storage and query disciplines.

Read the article →
May 31, 2026

Russian Dolls: The Fractal Symmetry of Yin.VM and LLMs

At the boundary where an engine meets the world, whether it evaluates Abstract Syntax Trees or neural network tokens, the architecture of isolation requires stigmergy: emitting data to be interpreted by a host. Bringing an LLM agent inside a virtual machine reveals a profound, nested symmetry.

Read the article →
Apr 12, 2026

Agent Smith Needs to Kill Git

Git stores code in units that are too coarse for agents. Files force sub-file semantic work through line diffs, so renames, reorders, and refactors collide for accidental reasons. When code lives in DaoSpace as tuples, the storage unit and the code unit finally match. That makes DaoSpace a better Git than Git for agentic coding.

Read the article →
Mar 28, 2026

Agent Smith as the Hippocampus

A useful agent needs more than a larger context window. It needs a way to move facts from transient inference into explicit, queryable memory. In Datom.world, Agent Smith plays that hippocampal role by selecting, consolidating, and reconstructing datoms across streams.

Read the article →
Mar 21, 2026

DaoSpace Is a Tuple Space, Not a Moduli Space

I previously described DaoSpace as a moduli space of databases. That confused one interpreter with the larger space it inhabits. DaoSpace is one precise thing: an immutable n-tuple space built from associative matching and generative communication.

Read the article →
Mar 12, 2026

The Unification of JIT and GC

Once Yin.vm externalizes CESK state as datom streams, JIT compilation and garbage collection stop being separate runtime subsystems and become two stream interpreters over the same execution log. A third interpreter, operating at the timescale of sessions, extends that coverage to patterns no execution-frequency profiler accumulates. All three answer by emitting datoms into the same continuation scheduler.

Read the article →
Mar 4, 2026

Datoms as Spacetime Events

Modern physics is event-first, not object-first. The datom tuple [e a v t m] fits this view: each fact is a causal event, and higher structures emerge through interpretation.

Read the article →
Feb 22, 2026

From Hilbert Space to Godel

A note on the path from Hilbert spaces to infinity: structure versus semantics, incompleteness, unbounded recursion, and the ontological split between substrate and interpreter.

Read the article →
Feb 18, 2026

The CESK Machine: Control, Environment, Store, Continuation

The CESK machine (Control, Environment, Store, Continuation) is the theoretical foundation of Yin.vm, but Yin.vm’s implementation flips the traditional model: instead of storing state inside the machine, it externalizes everything into queryable datom streams. This post traces CESK’s origins in semantic semantics, explains each component with concrete datom examples, and shows how Yin.vm’s stream‑based CESK enables lightweight continuation migration, full introspection, and time‑travel debugging.

Read the article →
Feb 18, 2026

Three Continuation Machines: Yin.vm/Yang, Gambit Scheme, and Ribbit

Yin.vm/Yang, Gambit Scheme, and Ribbit all descend from the Scheme tradition of first‑class continuations, yet their designs diverge radically. This blog compares their philosophies, architectures, and tradeoffs: a data‑centric stream‑based VM for mobile agents, a high‑performance Scheme‑to‑C compiler, and a compact portable VM that targets 25+ host languages.

Read the article →
Feb 17, 2026

Beyond LSP: Queryable AST as the Universal Language Server

The Language Server Protocol (LSP) treats code as text and IDE features as RPC calls. Yin.vm inverts this: the Universal AST stored as datoms makes the entire codebase a Datalog database. The IDE becomes a query interface: no per‑language servers, no text‑based diffs, just semantic queries across languages and time.

Read the article →
Feb 9, 2026

Yin.VM and Symmetry

Yin.VM starts from invariance, not language. This essay frames the AST as the invariant and compilation as symmetry preserving transformation.

Read the article →
Feb 3, 2026

Reimagining LibC: The Standard Library as a Stream

What if the C Standard Library (LibC) wasn't a collection of system calls, but a schema for data streams? By reimplementing LibC as a wrapper over Datom.world streams, we unlock a universe where legacy C programs become automatically distributed, persistent, and reactive—running seamlessly in kernel space, user space, or across a global grid.

Read the article →
Feb 2, 2026

Solid vs Datom.world

Solid pods allow users to own their data, but they cannot control what an application does once access is granted. By reversing the relationship and moving code to data via restricted continuations, datom.world ensures that your data never leaves your sphere of control.

Read the article →
Jan 26, 2026

Semantic Bytecode Benchmarks: The Cost of Queryability

We benchmark semantic bytecode (datom triples) against traditional numeric bytecode across three platforms: JVM, Node.js, and Dart. The results quantify the tradeoff: semantic bytecode is 4-11x slower to compile and 1-7x slower to execute, but enables queries that are impossible with numeric bytecode. The cost of introspection is measurable, but so is the value.

Read the article →
Jan 25, 2026

Beyond FFI with Datom Streams

In the landscape of virtual machine design, the boundary between host and execution engine is often the most significant bottleneck. For Yin.VM, the computation core of the Datom.world ecosystem, we have moved away from function-based Foreign Function Interfaces. Instead of treating the VM as a library to be commanded through imperative calls, Yin.VM treats the execution boundary as a continuous stream of Datoms. This shift from "doing" to "telling" represents a fundamental rethink of how decentralized systems should handle cross-language execution.

Read the article →
Jan 24, 2026

Building the Immune System for Decentralized AI: How Datom.world Defends Against Poisoning Attacks

The promise of decentralized intelligence is vast: millions of IoT devices collaborating to train smarter AI models without sharing raw, private data. But in a zero-trust environment, this dream faces a critical nightmare: Poisoning Attacks. By synthesizing Yin.VM, DaoSpace, and Shibi, Datom.world creates a self-defending nervous system for decentralized intelligence, where participants don't need to trust each other, only the immutable physics of the infrastructure.

Read the article →
Jan 23, 2026

Yin.vm on Dart: Portable cljc Meets Static Compilation

ClojureDart compiles Clojure to Dart at build time, inheriting Dart's static compilation constraints. No runtime eval, no dynamic code loading, no traditional macros. But what if the dynamism moved from the language into the data? Yin.vm and the Yang compiler are written in portable cljc code, running on JVM, JavaScript, and Dart via existing Clojure compilers. A native Dart implementation provides a performance baseline. The result: full Lisp-like flexibility on Flutter's cross-platform runtime.

Read the article →
Jan 21, 2026

Fungibility as Computational Reduction: How Money Solves the Traveling Salesman Problem

The Traveling Salesman Problem is NP-hard: no algorithm solves it in polynomial time. Yet logistics networks route millions of packages daily. The trick is fungibility. Money reduces TSP from an intractable combinatorial search to a tractable distributed optimization: prices compress constraints into scalars, arbitrageurs explore in parallel, and fungible tokens provide the slack that enables approximate solutions. Use the market solution as initialization for gradient descent and you get polynomial-time global search with high-precision local refinement. This reframing reveals markets as the initialization engine for optimization, inflation as state decay, and trust as computational bit-depth.

Read the article →
Jan 20, 2026

From Bookmarks to Datoms

Browser bookmarks are dead data. The CLI tool buku liberated them to the terminal. Datom.world liberates them to the stream. Why managing knowledge requires more than just a database file

Read the article →
Jan 6, 2026

Language as Geometry

We lift language out of the Flatland of probability tables into the high-dimensional space of vectors, where we can finally move freely between ideas.

Read the article →
Dec 10, 2025

Computation Moves, Data Stays: The Yin.vm Continuation Model

Yin.vm inverts traditional execution: continuations become thin control objects that migrate to where data lives, not containers dragging gigabytes of heap. By externalizing state into streams and intelligently resolving symbols, computation becomes mobile—making distributed computing feel local without pretending everything is.

Read the article →
Dec 9, 2025

Letter to Mom and Dad

Datom.world explained in plain language (Vietnamese, Chinese, English): a unified structure for information where people own their data and software becomes humane.

Read the article →
Dec 8, 2025

Why TCP Is Too Semantic for Datom.world

TCP forces global ordering and connection state, smuggling in semantics that contradict Datom.world's axioms. UDP provides the raw substrate where causality lives in datom metadata (as entity references), not the wire—enabling mobile continuations, CRDT merges, and interpreter-directed reliability without transport-layer lies.

Read the article →
Dec 7, 2025

Why Continuations Are the Universal Semantic Kernel

Continuations aren't just control flow—they're the universal semantic kernel . As first-class datoms in Yin.vm, they unify exceptions, async/await, generators, coroutines, backtracking, effects, and distributed computation, making nearly every language feature a special case of manipulating continuations.

Read the article →
Dec 7, 2025

Why LLMs Need Structured Code: The Yin.vm Approach

Yin.vm's universal AST-as-datom design transforms programming from "code as text" to "code as queryable data". When combined with DaoSpace's distributed tuple store, this architecture creates a new computational substrate where programs, continuations, and knowledge graphs coexist in a single queryable space. LLMs become meta-compilers operating over structured semantic graphs rather than generating free-form text, while contracts and ontologies eliminate hallucinations at the system boundary.

Read the article →
Nov 23, 2025

What Is Computation?

Computation is structural transformation through three operations: expansion (generating richer semantics), compression (extracting basis-free invariants), and morphism construction (building bridges between structures). This framework unifies interpretation, learning, and understanding.

Read the article →
Nov 21, 2025

Semantics is Structure Through Interpretation

Does semantics come from interpretation or structure? Both: Semantics = (structure) × (interpreter) . Chinese characters encode semantic associations (structure), but meaning only emerges when a reader interprets them. Remove either factor and semantics vanishes—this resolves the apparent contradiction.

Read the article →
Nov 19, 2025

All Money Is Monopoly Money

All money—BTC, USD, gold—is Monopoly money: accounting artifacts whose value comes from trust, not materials. Money's power lies in creating flow through skilled people. The real question isn't BTC vs USD, but which system generates the best flow of human productive activity.

Read the article →
Nov 17, 2025

π-Calculus, RQM, and the Primacy of Interaction

RQM says reality is interactions, not state . π-calculus says computation is message-passing, not mutation . These are the same insight: both reject independent facts/state as primary, making interaction fundamental. DaoSpace implements this—distributed observers correlate through sync, not through shared global state.

Read the article →
Nov 17, 2025

Datom Representation and the Hidden Performance Cost

Datoms appear fixed-size— [e a v t m] —but their elements aren't. Variable-size values create hidden performance costs in parsing, indexing, and caching. The solution: hybrid representation with typed streams, interning, and columnar encoding that balances semantic universality with execution speed.

Read the article →
Nov 16, 2025

What Makes Datalog Datalog: Semantics, Not Syntax

Datalog is defined by semantics, not syntax : relational foundation, Horn clause logic, stratified negation, bottom-up evaluation, set semantics. Datomic's EDN, Prolog's predicates, SQL's WITH RECURSIVE—all Datalog if the evaluation model matches. Surface representation is irrelevant.

Read the article →
Nov 16, 2025

Datom.World and the Collapse of the Wave Function

DaoSpace implements Relational Quantum Mechanics : no global state exists, only local states relative to observers. When isolated devices sync, their conflicting states undergo wave function collapse through CRDT merge—creating correlation, not convergence to pre-existing truth.

Read the article →
Nov 15, 2025

Universal AST vs Assembly: High-Level Semantics in Low-Level Form

The Universal AST looks like assembly —flat, explicit, verbose datom sequences. But it operates at a fundamentally higher abstraction: assembly manipulates machine state, the Universal AST represents program semantics. It's the difference between "move register" and "function application"—low-level form, high-level meaning.

Read the article →
Nov 15, 2025

When the IDE Edits AST, Not Text

When you edit AST directly , text becomes a materialized view—not the canonical code. Syntax becomes a user preference (C-like vs Lisp vs Python), refactoring becomes querying datoms, and collaboration merges AST changes, making text's tyranny obsolete.

Read the article →
Nov 15, 2025

Datalog as Compiler Infrastructure

When ASTs are datoms in DaoSpace, the entire program becomes a queryable database . Every optimization transforms from manual tree-walking to declarative Datalog queries—enabling whole-program reasoning, composable analyses, and user-programmable compilation impossible in traditional architectures.

Read the article →
Nov 14, 2025

Yin.vm: Chinese Characters for Programming Languages

Chinese dialects are mutually unintelligible, yet all share written characters —meaning in the character, not the sound. Yin.vm's Universal AST is programming's equivalent: languages share semantic representation (datom streams) while varying in syntax. Code becomes portable across languages, just as Chinese text is readable across dialects.

Read the article →
Nov 4, 2025

Unitarity, π-Calculus, and the Cosmic Speed Limit

Unitarity (information preservation) + π-calculus (local communication) explain why communication has a finite speed limit . Instantaneous communication would violate causality and create contradictions in information flow. The speed of light is the architectural parameter enforcing locality in the universe's distributed computation.

Read the article →
Jan 10, 2025

Code as Entropy: Why Good Software Evolves, Not Designed

Good code isn't designed, it evolves through a dance with entropy. By bounding complexity within each module and distributing it outward, code becomes malleable, the only objective measure of quality that matters. Bounded complexity ensures changes stay local and the system remains learnable.

Read the article →
Dec 2, 2024

Streaming Datoms with Transducers

Datoms flow as immutable streams that can be folded into state anywhere —phone, WASM, edge nodes. Using Clojure transducers, we process these streams with zero intermediate collections, making distributed computation deterministic and conflict resolution just another transformation.

Read the article →