ENGINEHANDBOOK
← all posts

How it works

architecture reference · updated 2026-08-24

Request → response, 10,000 ft

Every board exposes the same REST surface under /api/srv/<board>/: tables, records (CRUD + query + aggregate + search), auth, files, recipes, jobs, keys, realtime events. One process serves all boards; a tenant key scopes every node in storage, so isolation is structural, not conventional.

Storage: three layers

HelixDB holds records as graph nodes with routing properties (table, seq, board_id) plus the JSON payload; queries push predicates down and filter the rest in Rust. SlateDB gives Helix an LSM key-value layer, MinIO/S3 holds the actual bytes. The engine only knows the Database trait — swap any layer by config.

Caching + singleflight

CachedDatabase fronts everything with a 30s result cache. Identical concurrent misses share one backend query (singleflight) instead of stampeding. Writes invalidate per-table. Warm reads cost zero network round-trips.

Automations without infrastructure

Recipes trigger on record events or cron and run sandboxed actions: HTTP $call with secret substitution, $set/$merge field writes, $create_user, $transaction patches. Webhooks are a separate signed delivery queue with exponential backoff — never inline, never blocking the write path's lock.

Agent-first operations

Everything is also an MCP tool: apps.create, tables.create, records.bulk, recipes.add, graph.sync, secrets.set... An AI agent can scaffold and operate a full app (schema, data, automation, frontend upload) through one JSON-RPC endpoint.

Embeddable by construction

The engine crate compiles with zero external I/O dependencies for tests (in-memory adapters) and speaks two traits — Database + ObjectStore. serverless- engine-rs drops the whole platform into any Rust binary as a library; the daemon you deploy is just a thin host around it.

The diagram

clients (SPA / curl / agents)
        │ REST /api/srv/<board>/…   MCP /mcp (JSON-RPC tools)
        ▼
   srv daemon ── static files /srv/<board>/ (object store)
        │  admission permits · result cache · singleflight
        ▼
   engine core (Rust) ── recipes · webhooks · cron · auth · audit
        │  Database trait
        ▼
   HelixDB (graph nodes, tenants)
        ▼ SlateDB (LSM) ──► MinIO / S3 (durable bytes)

Deep dives live in the posts — start withthe write path.

pilserlabs · open in main window