Skip to content
img-forge Voice Services Plans Company Docs Blog

Field guide · v0.1.1

The Edge That Thinks

A field guide to edge-native generative systems

Static public edition. Verified through . Published .

Public v0.1 includes

  • Free introduction and Chapter 2
  • Production checklist
  • Reference architecture
  • Dated release ledger

Introduction

Begin with architecture, not the model

The first mistake in generative AI architecture is to begin with the model. A model is visible: you send text, it sends text back, and a convincing demo appears quickly. A product has to answer a harder set of questions.

Which request deserves an expensive model? What happens when an answer requires a long-running generation? Where does a user’s authorization end when an agent calls another service? How do you know a retrieval result was relevant rather than merely available?

The model does not answer those questions. Architecture does.

What edge-native means here

This guide calls an edge-native generative system one in which inference, state, asynchronous work, media storage, search, and service-to-service calls are deliberately designed as one application.

The edge is not a decorative deployment target at the end of the build. It is the runtime in which the system’s decisions occur.

Cloudflare supplies useful primitives for this style of work: Workers for request handling, D1 for relational state, Durable Objects for coordinated state machines, Queues for deferred work, R2 for large artifacts, Vectorize for similarity retrieval, Workers AI for on-platform inference, and Service Bindings for private composition. The value is in the boundaries between them.

The production shape

A demo often looks like browser → API route → model → browser. That can be appropriate for exploration. It becomes incomplete when the response has a cost, duration, owner, or consequence.

The production shape authenticates, validates, classifies, chooses a deterministic path or model route, persists intent and decision, responds or enqueues durable work, then records outcome, cost, latency, and provenance.

Generative systems feel probabilistic at their center. The surrounding system should be unusually explicit.

Code first, inference second

A reliable AI application is better described as a deterministic application that occasionally asks a model for judgment.

If a request is a health check, known command, schema transformation, or previously successful procedure, run code. If it needs semantic interpretation, call the smallest adequate model. If it needs expensive reasoning, send it there deliberately and leave a trace of why.

The purpose is not to eliminate inference. It is to make inference exceptional enough to be observable and affordable.

Chapter 2: The request is not the unit of work

An HTTP request is a delivery mechanism. It is not a promise that a task can be finished before the connection closes.

That distinction becomes urgent in generative systems because their work has variable duration and variable cost. One request may be a fast deterministic lookup. The next may create a high-resolution image, parse a gigabyte-scale archive, generate embeddings for thousands of fragments, call several models, or ask an agent to inspect a repository.

Lifecycle diagram showing a request becoming an accepted job, then moving through queued, processing, completed, failed, canceled, and reconciled states.
Request and job lifecycle. An HTTP request should create or locate durable work. Cancellation is a state transition: queued work can be canceled directly; processing work can be canceled only when the coordinator can safely stop or ignore the side effect.

A job is a contract with time

An HTTP request is a delivery mechanism. It is not a promise that a task can be finished before the connection closes.

A good job record identifies the tenant or owner, validated input, state, idempotency key, budget or quota reservation, timestamps, and pointers to large outputs. It is not merely a log row. It is the authoritative answer to what the system agreed to do and what happened.

Work is accepted once, processable more than once without duplication, and terminal only when its accounting is terminal too.

State has an owner

One recurring source of edge-system bugs is treating every storage primitive as interchangeable. The question is not where data can be stored. The question is which component is authoritative for this fact.

Tenant, quota, and billing outcomes belong in relational state and the identity or billing service. Live job coordination and timers can belong to a Durable Object. Queue messages transport work, but the job record remains truth. Generated media belongs in object storage, and retrieval candidates belong in an index backed by source records.

Reserve before generation; settle after

Generative work often has a cost that is unknown until it completes. That does not justify charging blindly afterward.

A safer pattern is authorize → reserve → execute → commit, with refund as the failure path. Authorization answers whether an actor may attempt work. A reservation answers whether the system has set aside the right to spend for that attempt.

The split makes retry survivable when a worker receives the same message twice, a client resends after a lost response, or a provider times out after doing work.

Queue messages are invitations, not facts

A queue delivers a request to try work. It does not prove the work is new, and it does not prove the work is still relevant.

A consumer should load the job, confirm ownership, check whether it is terminal, verify reservation and deadline, and only then call a model or provider.

This approach handles redelivery, duplicate submission, and cancellation without turning incidents into forensic exercises.

State ownership map assigning identity, job truth, live coordination, transport, artifacts, retrieval, cache, and telemetry to separate owners.
State ownership. Each consequential fact needs one owner. Storage primitives are implementation details after the ownership decision is made.

The production checklist

Verified through . This checklist is a launch conversation, not a maturity score.

Contract and state

  • Is work a request, job, session, or workflow with explicit cancellation and terminal states?
  • Is there one authoritative record and an idempotency key for every effect?
  • Can duplicate delivery, timeout, partial completion, and retry converge safely?
  • Are queues treated as repeatable transport rather than truth?

Identity, models, and tools

  • Is tenant scope resolved server-side for reads, retrieval, and tools?
  • Are prompts, source data, derivatives, and telemetry separately classified?
  • Can deletion reach artifacts, vectors, cache, and queued work?
  • Does every tool receive least authority, purpose, and expiry?
  • Are capability, budget, tool schema, provider failure, and injection evaluated?
  • Are time, money, tokens, calls, concurrency, and blast radius enforced outside the model?

Reliability and operations

  • Can long work return an accepted job rather than an implausible finished response?
  • Is large data kept out of queues and model context?
  • Are downstream failures clear states rather than fabricated output?
  • Can operators trace a result to policy, context/source IDs, model, tool decision, and cost?
  • Are sensitive payloads redacted from routine telemetry?
  • Has the team rehearsed revoking a tool, provider key, tenant, and bad index?

The final test is: what happens if this succeeds twice, after cancellation, after permission revocation, or with yesterday’s policy? If that answer is unclear, the design needs another pass.

Early access

Get updates or request a reviewer copy

The paid edition is not linked yet. Use this form for early-access updates, reviewer-copy interest, or companion-resource notices.

Data owner
Stackbilt LLC · admin@stackbilt.dev
Retention
Field-guide interest records are retained for 12 months unless a working relationship starts or deletion is requested.

See the privacy policy.

Sources policy

Externally checkable release claims cite official Cloudflare documentation, changelog, or blog sources and carry a visible verification date.