The SISO Framework

Stream In, Stream Out: A Pure Functional Framework for AI-Assisted Software Development

Overview

SISO is an architectural framework that enables large language models to generate production-quality software through enforced constraints: immutability, pure functions, and single-responsibility transformations. By constraining the solution space, correct implementations become the path of least resistance for AI code generation.

The framework uses a layered architecture — CORE primitives, a Protocol for state declaration, and a Resolution layer that quarantines all impurity — enabling systems as complex as a full SQL database engine while preserving the framework's fundamental guarantees.

Paper

SISO: A Pure Functional Framework for Rapid AI-Assisted Software Development
Jonathan Bailey
December 2025

Download PDF

Architecture

SISO consists of three primitives and three layers. The primitives — Event, Gate, Stream — are the irreducible kernel (~150 lines). The layers — Protocol, Resolution, Persistence — extend the kernel to stateful systems without compromising its guarantees.

Core Primitives

Protocol Layer

Resolution Layer

Persistence Layer

Properties by Architecture

These properties are not bolted on. They fall out of the constraints.

Reference Implementations

1. Jaa Database Engine (JavaScript + PHP)

Complete relational database engine built on CORE primitives

SQL string in, query results out. The event chain sql → parse → plan → scan → filter → project → result is the framework's →E→E→ with typed gates. Content-addressable persistence with SHA-256 hashing. File-backed or in-memory. Interactive REPL. Dual implementation — same architecture, same tests, two languages.

DEMO: siso-framework.org/demos/jaa (non-persistent)

GitHub: github.com/siso-ai/jaa

2. Universal Math Gate (PHP)

All of symbolic mathematics in one gate

216 pattern-rewrite rules across 11 mathematical domains. The stream's depth-first loop is the evaluation engine — expressions re-enter the gate until nothing matches and the result falls to pending. Demonstrates that CORE's →E→E→ model is a term rewriting system. Math isn't calculation. It's transformation.

DEMO: siso-framework.org/demos/matek

GitHub: github.com/siso-ai/math-gate

What Makes This Work

The Protocol layer is what makes stateful systems possible without breaking purity. A StateGate doesn't read from a database — it returns a ReadSet declaring what it needs. It doesn't write to a database — it returns a MutationBatch describing what should change. The Resolution layer (Runner) is the only impure component, and it's structural, not business logic.

The persistence layer uses a content-addressable store (canonical JSON → SHA-256 → immutable blobs) with named references. This is Git's object model. Deduplication is free. Snapshots are free. The store doesn't know what it's holding — a row, a schema, a wiki page.

The result: the Jaa database is a set of gates. SQL parsing is PureGates. Table scans, inserts, updates are StateGates. The Runner wires them to persistence. The Stream dispatches events. 1,123 tests pass across two languages. The same architecture runs in JavaScript and PHP. No dependencies.

Core Principles

Citation

@article{bailey2025siso,
  title={SISO: A Pure Functional Framework for Rapid 
         AI-Assisted Software Development},
  author={Bailey, Jonathan},
  year={2025},
  url={https://siso-framework.org}
}

License

All reference implementations are released under the GNU General Public License v3.0. See individual packages for details.

Requirements