Station behaviors, names and supervision
Station is the application framework above the Transit client. It offers GenServer-style behavior, durable calls, scoped names, supervision and typed state helpers. It does not replace kernel permission checks or run your handlers inside the node. Start with the ledger example or the SDK examples.
Behaviors and calls
A behavior handles the next accepted input in a private turn. Persist the data needed after restart, emit outputs through the turn and observe its commit. Local callbacks, fields and host tasks are not durable workflow state.
A call records correlation and its original reply destination. Caller recovery resumes that durable identity; restarting a host task must not issue an unrelated call. Replies, timeouts and closure use recorded protocol outcomes. Cancelling a host await does not undo the receiver's accepted work or imply remote cancellation. Follow caller ownership and recovery when implementing a runner.
State helpers
Tables provide typed operations and finite queries above a state resource. Documents add accepted structured/text changes with explicit merge conflicts. They share growing storage/read/publication primitives; a handler still has the one-mutated-resource turn boundary. A Table batch can be atomic within that resource without creating a cross-resource transaction.
Handlers use native v1 bounded pages and retained call/query records independently of resident worker memory. Configure per-operation and active-work budgets; retained collections do not become resident queues.
Names and registries
A registry namespace is an application naming scope, not a security realm. Lookup needs current rights. Registration/rebinding is a durable, conditional operation; names map to logical PIDs, not whichever OS worker is currently alive.
Resolve an accepted call's destination according to its contract and preserve it through delivery and recovery. Rebinding a name or replacing a worker cannot redirect accepted work. Stale cleanup must be conditional so it cannot erase a newer binding. Name removal does not itself delete the old process or its history.
Supervision and time
Station supervision expresses logical child/lifecycle intent. Runtime providers and local supervisors reconcile physical execution. A restart can replace a worker for an eligible PID; retirement requires a new PID and explicit bootstrap. Supervisor state cannot grant a child missing permissions or revive expired work.
Timers provide recorded scheduling input. Deadline enforcement cannot rely only on a timer being delivered to a sleeping mailbox. Suspension must fit the process's required recovery-resource lifetime. Capacity shortage is a blocked condition, not permission to expire a child or discard its accepted messages.
The Station package, Station wire contract and SDK index describe the APIs and supported interfaces. See deployment for provider placement and retention for terminal lifecycle rules.