Files
mizan/ROADMAP.md
Ryth Azhur ae684a36cb Restore approved state (tree of 4effcc7 "Added LICENSE")
Roll the working tree back to the last approved shape, before the post-LICENSE span that false-greened the AFI parity matrix with symbol-presence probes and smuggled an unauthorized SQLAlchemy dependency into FastAPI's Shapes binding.

Forward commit, not a history rewrite — the six commits since 4effcc7 stay in the log as the record of what happened.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-04 14:59:53 -04:00

5.0 KiB

Mizan Roadmap

v1 — Django + Multi-Framework (React, Vue, Svelte)

Done

  • @client decoratorcontext=, affects=, auth=, websocket=, private=, route=, methods=, rev=, cache=
  • ReactContext class — type-safe context/affects references with linting
  • Named contexts — functions sharing a context name grouped into one provider and one fetch
  • Context bundling endpointGET /api/mizan/ctx/<name>/ returns all functions in one response
  • Server-driven invalidation (JSON body) — mutation responses carry {"result": ..., "invalidate": [...]}
  • X-Mizan-Invalidate header — second invalidation transport for view-path responses (redirects, HTML)
  • Return-type branching — data return → RPC path; HttpResponse return → view path
  • Scoped invalidationaffects_params lambda; runtime supports {context, params} form
  • Auth guardsauth=True, auth='staff', auth='superuser', auth=callable
  • JWT + session auth — auto-detected, CSRF handled
  • MWT — Mizan Web Token for Edge cache keying (separate secret from JWT/cache)
  • Shapes — Pydantic + django-readers for typed query projections
  • WebSocket channels — real-time bidirectional communication
  • HMAC cache keying — origin-side cache with cross-language HMAC conformance (Python + TypeScript pin)
  • Edge manifestpython manage.py export_edge_manifest; both RPC and view-path functions; deterministic (sorted) output
  • SSR bridge — Django template backend → persistent Bun subprocess via JSON-RPC; the worker resolves components by file path (import(file) + renderToString)
  • mizan-base kernel — framework-agnostic imperative client primitives (data/status/error owned by kernel)
  • Rust codegenprotocol/mizan-codegen, a Rust binary reading KDL IR and emitting per-target clients (react, vue, svelte, channels, stage1, python, rust), each byte-parity-tested. mizan-generate is the thin npm launcher.
  • React wrapper layer — codegen emits the MizanContext root provider, useMizan escape hatch, and useMutation-backed hooks exposing { mutate, isPending, error }
  • Additional backend adaptersmizan-ts (TypeScript), mizan-rust-axum (Rust/Axum with three-way parity), mizan-tauri
  • Frontend transportsmizan-tauri-transport, mizan-webview-transport, mizan-webview-channels

Next

  • Vue / Svelte runtime packagesfrontends/mizan-vue and frontends/mizan-svelte are unimplemented stubs. The codegen emits their clients (byte-parity-tested), but a kernel-adapter runtime package and a live-backend example are owed for each.
  • Svelte 5 runes — the Svelte target emits Svelte 4 readable stores; migrate to $state/$derived.
  • Forms codegen target — emit form clients wired to mizanCall from the kernel; retire the hand-written mizan-react/src/forms.ts and its dependence on the pre-kernel provider.
  • Desktop example onto the generated provider — migrate examples/django-react-desktop-app off the pre-kernel MizanProvider (mizan-react/src/context.tsx) so it can be retired.
  • Cache hardening — purge atomicity, per-param sub-index cleanup, thundering-herd protection, RedisCache coverage (see backends/mizan-django/src/mizan/cache/KNOWN_ISSUES.md).
  • Package READMEsmizan-base, mizan-codegen, and the other packages missing one (see ISSUES.md).

Mizan Cloud (closed-source)

Mizan Edge

Cloudflare Workers for automatic edge caching.

  • Reads the edge manifest to configure cache rules
  • Context GETs cached at edge, keyed by context name + params
  • Reads X-Mizan-Invalidate header from mutation responses to purge caches
  • Reads JSON invalidate key from RPC responses for the same purpose
  • Resolves URL patterns from manifest to purge view pages
  • Zero configuration — the manifest IS the cache policy

Mizan Render

SSR at the edge via Cloudflare Workers.

  • The Bun SSR bridge, running on Cloudflare instead of colocated with Django
  • Context data fetched from Django (or edge cache), rendered at the edge
  • HTML response streamed to the user from the nearest PoP

Mizan Deploy

One-command deployment for Django + React apps.

  • Container orchestration (AWS/Azure)
  • Edge + Render auto-configured
  • mizan deploy from the CLI
  • The Vercel experience for Django

Reference

Wire protocol shapes (context fetch, mutation call, invalidation transports) are documented in CLAUDE.md. Architectural details for specific subsystems live in docs/:

  • docs/AFI_ARCHITECTURE.md — package architecture, kernel model, adapter strategy
  • docs/CACHE_KEYING.md — HMAC cache key derivation
  • docs/MWT_SPEC.md — Mizan Web Token format
  • docs/SSR_ARCHITECTURE.md — Django template backend, Bun bridge
  • docs/PSR_VS_EDGE.md — protocol-level rendering vs. paid Edge layer
  • docs/PRODUCT_ARCHITECTURE.md — product surface and pricing tiers