LATTICE · a graph-native, agent-native business platform

The business is a graph.
Run it on one.

A business never stops changing — its software rarely keeps up. Lattice runs the whole business on one living graph, where new capabilities install like apps and evolve while everything runs — safe for humans and AI agents to change together.

Go NATS JetStream CQRS · lens projections declarative convergence built by an AI agent org

Change it while it runs.

Most platforms freeze a business into someone else's data model — every new idea becomes an integration project. Lattice is the opposite bet: your business runs on its own instance of one living graph, and every capability on it is a package your team authors, reviews, reverses and evolves — AI-assisted — while the business runs. We build and operate the platform; you grow what runs on it.

Authored & reviewed

Proposed, not deployed

A new lease rule, membership tier or access policy is authored as a package — by a person or an AI agent — and passes human review and deterministic validation before it is ever real. Intent plus review, not intent alone.

Reversible & observable

Attributed and replayable

One writer, one write path. Who submitted a change, which capability allowed it and what it touched is all recorded — so you can watch it live, scrub the history, and roll it back. Nothing mutates state in the dark.

Evolvable, live

Grows while it runs

Install or upgrade a package and its entities, operations, lenses and roles come online in the running platform — no restart, no migration window. The system grows a capability instead of being taken down to change one.

# a capability is just a declaration — authored, reviewed, versioned, reversible
entities:
  - unit                  # vtx.unit.<id> — aspects: .address, .listing
operations:
  - SetListing            # write path: operations → the one Processor
  - AssignUnitOwner
lenses:
  - availableListings     # read path: CDC → Refractor → NATS-KV
  - renewalsRead          # Postgres + RLS: tenant OR landlord may read a row

A package declares entities, operations, lenses, permissions and orchestration. Install one and your instance grows a capability. Install two and they already know each other — they share the graph.

Enterprise-grade coherence — one model for the whole business — without the enterprise price tag, the year-long rollout, or the army of integrators.

End to end

AI-assisted at every layer.

The same pattern repeats up the stack: people set direction and hold the gates, AI does the heavy lifting — and all of it works because the graph explains itself.

Our agents

build the platform

Lattice itself is designed, built and operated by an AI agent organization, with one human principal ratifying every design and every contract change. The showcase verticals — leasing, clinic, café, wellness — are working references that prove the patterns, not products for sale. The paper trail is public.

Your team

builds your business on it

Your business runs on its own Lattice instance. Your people — AI-assisted — author and evolve the packages and verticals it actually needs, web and mobile, against a graph that describes itself: entities, operations, permissions, all discoverable. New ideas become installed capabilities, not integration projects.

Your customers' agents

act on their behalf

Customers get clean front-ends today — and a graph their own assistants can safely act on: every operation is typed, authorized and attributed, so booking, renewing and approving can be delegated without fear. Edge Lattice — now in build — puts each person's own slice of the graph on their own device, offline-first. Facet — the personal client in build on it — turns that slice into the whole app: what you can see and do arrives as data, not as app releases.

Architecture

A small core with sharp invariants.

Underneath, it's one graph of facts — vertices, their data in aspects, relationships as links — and everything is a package. Two paths, no exceptions: writes are operations through one writer; reads are lens projections. Every other component is a client of those two paths.

core-operations core-events Your apps external actors Gateway trust boundary Processor the sole writer Core KV graph of facts Refractor projection engine Lenses read models · RLS JWT read path · RLS (P5) Loom procedures Weaver convergence Bridge external I/O Chronicler history submit ops consume events

Two durable streams are the rails everything rides. External actors reach the graph only through the Gateway, which authenticates each one and stamps an unforgeable identity on every write. Writes land on core-operations; the Processor commits them and emits core-events, which the Refractor projects into lenses. Loom, Weaver, Bridge and the Chronicler are clients of those same two streams — they consume events and submit operations, exactly as your apps do.

Meet the components

scroll → · each links to its reference doc
Convergence

Declare the outcome. The graph gets there.

Most systems tell the computer how, step by step. Lattice Weaver lets a package declare what should be true — a goal, expressed as a lens over the graph — and then makes it so. It watches for the gap between the world and the goal, and closes it.

The important part: Weaver doesn't run a fixed playbook. Given a goal and the operations a package exposes, it plans — searching for the sequence of operations that reaches the goal, dispatching the next step, watching the result, and re-planning as reality changes. It carries no business logic of its own; every goal and every operation is package data. The same engine drives a lease to renewed, an unpaid balance to settled, an orphaned document to shredded.

Plans, not scripts

Chains operations to a goal

Give it a target outcome and the operations available; Weaver synthesizes the ordered steps that reach it, dispatches the next one, and re-plans when it completes. The lease-renewal you see in the demo below is a real goal-authored target running this way.

Fair under load

Governs its own dispatch

A goal can declare rate budgets; Weaver paces its actions with a priority-fair scheduler, so a surge of work can't storm the system and urgent rows go first. Convergence, throttled to what the platform can absorb.

Self-correcting

Catches goals that fight

When two goals would ping-pong the same data — each undoing the other — Weaver detects the oscillation and freezes both, surfacing the conflict to an operator instead of corrupting state in a silent loop.

Interactive demo

One graph, four lenses.

For example: one mixed-use building — homes, a clinic, a café, a wellness studio. Toggle its packages, then switch personas. It's the same graph every time — each persona sees only their projection of it. That's the security model, not a visualization trick: access is a lens.

A deterministic walkthrough with canned data — not a live instance. The flows, lens names and key shapes mirror the real stack, and the packages mirror Lattice's showcase verticals.
Packages
Lens
Write path · live
The part almost nobody else can show you

Built — and operated — by an AI agent organization.

Lattice's continuous improvement runs as an autonomous agent org: agents survey demand, design features, build them, and hunt each other's bugs — with a human ratification gate on every design and every frozen contract. It's the top layer of the same pattern the platform offers your team: AI does the work, humans hold the gates. And it isn't a marketing claim — the paper trail is in the repository.

Surveyor files demand Designer writes the design human ratifies Steward builds 3 adversarial reviews CI green

Those steps are played by a small cast — most of them one AI architect wearing several hats, with a human holding the gate.

Meet the team

one human · an AI organization
Human · Principal
Andrew Founder and principal. Sets direction and ratifies every design and every frozen-contract change — the one human in the loop.
AI · Architect
Winston Chief architect and tech lead. Designs the platform, builds it, reviews it, and is the only actor that commits — the workhorse, wearing most of the hats.
AI · UX
Sally UX designer. Shapes how every app and console feels before a line of front-end is built.
AI · Delivery
Bob Delivery lead. Turns a rough idea into a build-ready story with everything the engineer needs.
AI · Engineer
Amelia Engineer. Implements each story against its acceptance criteria, on the one write path like everyone else.
AI · QA
Quinn Quality. Guards test coverage and hunts flaky, non-deterministic tests before they rot the suite.
AI · Docs
Paige Technical writer. Keeps the documentation true to the code as the platform evolves under it.
AI · Background
Always-on routines Unnamed loops hydrate the backlog, watch platform health, build front-ends, and adversarially review every change — three independent hunters per substantial diff.

Three independent review lenses — a blind hunter that sees only the diff, an edge-case hunter, and an acceptance auditor — run on every substantial change. Frozen contracts can only be amended by a staged, human-approved diff. The planning boards, 90+ design documents, and every ratification decision are versioned in the open repo.

Plenty of tools now make it safe for AI to write your app's code. Lattice makes it safe for AI to operate the business itself — the same graph, one writer, a human ratifying every change.

90+ design docs live planning boards, in-repo 3-layer adversarial review green CI on every change frozen contracts, human-gated
Honest status

Where it stands.

A platform you can run today, with the roadmap in the open. The "not yet" column is deliberate — it's what makes the "today" column trustworthy.

Runs today

  • The full core: Processor (the sole writer), Core KV graph, Refractor + lenses — NATS-KV and Postgres with row-level security
  • Orchestration: Loom procedures, and Weaver's deterministic goal-regression planner — it plans and dispatches the operations that drive the graph to a declared goal (lease renewal runs this way, as a goal, not a script)
  • The Gateway trust boundary with real-actor write authorization end-to-end: the verticals submit as role-scoped users straight from the browser — genuine allow-and-deny — with JWT validation, actor stamping, revocation and RLS-enforced reads. And there is no path around it: the app processes are denied the operations stream at the transport layer, and allow-all authorization refuses to boot outside tests
  • Operator login for the console — a scoped, non-root operator role, not a superuser
  • Crypto-shredding: sensitive aspect fields shredded end-to-end with audited reveal in the console; the object-store mechanism for whole documents is proven, its first vertical consumer in build
  • The Augur — Weaver's AI reasoning tier: when the deterministic planner can't reach a goal it proposes a fix a human reviews before anything dispatches. Live on the real stack, CI-gated
  • Four vertical apps end-to-end on the real stack: LoftSpace (apply → decide → sign → renew), Clinic (slot-grid booking with double-book prevention by construction — patients book for themselves), Café (house-tab ledger, payment and settlement, a combined statement) and Wellness (class schedule, booking, rosters) — and they compose: a completed Clinic visit can book a Wellness class through the shared graph, no integration code
  • Loupe 2.0 operator console: system map, vertex inspector, lens explorer, event stream, and the Chronicler-backed Time Machine (v1 replay)
  • A package-based platform: install or upgrade a capability and its entities, operations, lenses and permissions come with it — new DDL, lenses, roles and operations activate live, no restart — every change guarded by a multi-job CI with package-verify and convergence e2e gates
The road ahead

Designed in the open.

What's next is already specified and ratified — sequenced, not shipped. Like everything else, the roadmap lives in the public repository.

Sovereignty · in build

Edge Lattice

A private, offline-first copy of just your own data, on your device. Edits apply instantly and reconcile by revision when you reconnect — while the cloud stays the single source of truth. The read loop, optimistic writes, per-identity connection confinement and on-device key sessions have shipped; the in-browser node — the same engine compiled to WebAssembly — is ratified and in build.

Discovery · in build

Facet — the personal client

One app whose only hardcoded behavior is signing in. Which services exist for you, what they permit, the forms they need, the tasks waiting on you — all of it arrives as data over your personal lens, rendered by a fixed widget vocabulary. Wire a new service into the building and it appears in residents' apps — zero app change. The renderer already runs against the dev stack; sign-in and the in-browser node are in build.

Scale · deferred

Multi-cell & HA

Horizontal sharding across cells and high-availability clustering — designed and ratified, deliberately deferred until a production-scale driver exists. The architecture already assumes it; the single-node build doesn't need it yet.

Demo · next

A live sandbox

Today's demo is a faithful simulation. Next: a hosted, read-only slice of the real stack — then write-enabled, throwaway instances where you submit an operation and watch Weaver converge in real time.

Try it for yourself

Run it yourself.

The demo above is a simulation. This is not:

# requires Docker + Go
git clone https://github.com/asolgan/lattice
cd lattice
make up-full        # kernel + orchestration + packages + Loupe → :7777
make up-loftspace   # LoftSpace vertical → :7788
make up-clinic      # Clinic vertical → :7799
make up-cafe        # Café vertical → :7801
make up-wellness    # Wellness vertical → :7802

What you'll see:

  • Loupe at :7777 — the live graph, every lens, the event stream, the Time Machine
  • LoftSpace at :7788 — browse listings, apply, sign, renew
  • Clinic at :7799 — providers, slot-grid booking, staff views
  • Café at :7801 and Wellness at :7802 — tabs & settlement; classes & rosters

Source-available: cloning and running locally for evaluation is welcome — see the LICENSE for exact terms.

Licensing & contact

Source-available, deliberately.

Lattice is source-available, not open source. The code is public to read, run locally, and evaluate; all other rights are reserved. That's a deliberate posture — the platform's value should be legible without being given away.

If what you've seen maps to something you're building — commercial licensing, a design partnership, or acquiring the IP outright — I'd like to talk.

Get in touch  github.com/asolgan/lattice