Edge Platform Family proposals
The Edge Platform Family, edge.forms.takoform.com/v1alpha1, is the first official Form Family (decision 0009). Its members fix, completely, the application-visible semantics of a proven edge developer platform without naming its vendor (decision 0008).
Authoring policy: shape-preserving contracts
Every member Form preserves one service shape end to end: execution ABI, client API, data model, consistency, delivery guarantees, update and delete units, error semantics, and the capabilities exposed through typed Bindings. No free semantic token is admitted; a difference in semantics is a different Form, never a selector value. Outward capability use is a digest-bound Binding held by a revision resource; inward activation is an attachment resource (decision 0010). Desired schemas carry no name or envelope plumbing: the v1alpha3 resource envelope owns identity and status (decision 0011).
The catalog source of truth is internal/edgeformcatalog; the generated candidates live in forms/candidates/edge/v1alpha1, the exact Interface and Binding candidates in interfaces/candidates/v1alpha1 and bindings/candidates/v1alpha1.
MVP members
| Form | Role | One-line semantics | Separate-Form boundary |
|---|---|---|---|
| ModuleWorker | identity | Logical identity of one ES Module Worker application; the ABI is fixed by identity. | A WASI function or container service is a different Form. |
| WorkerBundle | revision | Immutable content-addressed module bundle: main module plus digest-pinned modules. | A different linking or packaging model is a different Form. |
| WorkerVersion | revision | Immutable executable snapshot: bundle, compatibility date, handlers, vars, typed bindings. | Mutable in-place code or config is not a version of this Form. |
| WorkerDeployment | deployment | Basis-point traffic split across up to eight Worker Versions of one worker. | Per-request routing rules or geographic steering is separate work. |
| WorkerCustomDomain | attachment | Serves one DNS hostname from a worker's active deployment over HTTPS. | Path-pattern routes are a separate attachment Form. |
| WorkerCronTrigger | attachment | Invokes the scheduled handler on a five-field UTC cron schedule. | Timezone-aware scheduling is a different Form. |
| EdgeKVNamespace | identity | Globally replicated key/value namespace with eventual consistency. | A linearizable or per-key-consistent store is a different Form. |
| ObjectBucket | identity | Flat-namespace object store with read-after-write consistency and strong etags. | CORS/lifecycle/lock rules are separate policy Forms. |
| SQLiteDatabase | identity | Embedded SQLite database with serializable transactions. | A Postgres or MySQL database is a different Form. |
| AtLeastOnceQueue | identity | Queue with at-least-once delivery and no ordering guarantee. | A FIFO or exactly-once queue is a different Form. |
| QueueConsumer | attachment | Attaches one worker as the batch consumer of one queue, with retry and dead-lettering. | Pull-based consumption over an API is a different Form. |
Designs that differ in these semantics — PostgresDatabase, FifoQueue, WasiFunction, ContainerService, TimezoneSchedule — belong to future families and get their own proposals when that work starts, per spec/form-families.md.