🏛️ exo architect · milestone 0 · stub

Exo Architect

An idea becomes an architecture built on XO, the architecture becomes a mock simulation of its data flow, and the simulation becomes implementation candidates — each one timed and measured. Black boxes at every depth; group and ungroup freely.

1Idea
2Architecture
3Mock simulation
4Measured candidates

Mock data flow — click a box to ungroup it

An example system: an order flows through black boxes. "Checkout" is itself a group; click it to see its inner boxes. Events move as dots; each box reports latency from a mock model.

events 0p50 –p95 –depth 0

The API we are aiming for

Tiny, high-level, tag-driven. Backend-agnostic: the same lines run against a mock XO today and the real XO later.

from exo import system, box, flow

@box("checkout", emits="order.paid", mock="lat~N(40ms,8)")
def checkout(order): ...

shop = system("shop") >> checkout >> box("fulfil") >> box("notify")
shop.simulate(events=10_000).report()      # mock data flow, timed
shop.candidates(checkout).race()          # real implementations, measured