Public dry run dryrun-20b59dc46b72
Source commit: 20b59dc46b72103c2f8a516c692b5cc3d54fab19 Public tree identity: sha256:aaa5ac7b58b2a0d23c6b11e5f76324bf3839ca1f62653a83deb736932adcfbd9
This commit is contained in:
commit
2bef715211
221 changed files with 79792 additions and 0 deletions
46
docs/architecture.md
Normal file
46
docs/architecture.md
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
# Architecture
|
||||
|
||||
Disasmer presents a distributed workflow as one virtual process. The workflow
|
||||
program and its tasks are WebAssembly modules; the coordinator, attached nodes,
|
||||
CLI, and debugger are separate host processes.
|
||||
|
||||
## Components
|
||||
|
||||
- The SDK and macros turn Rust workflow functions into versioned Wasm exports.
|
||||
- The CLI builds and validates a bounded bundle, creates a virtual process, and
|
||||
launches its selected entrypoint as the coordinator main.
|
||||
- The coordinator owns identity, authorization, scheduling, process state, and
|
||||
debug epochs. It executes only the capless coordinator-main Wasm: that main
|
||||
may spawn/join tasks, wait, log bounded state, and participate in debugging,
|
||||
but cannot run commands, read source or host files, use sockets, or obtain
|
||||
secrets. The coordinator does not retain artifact bytes.
|
||||
- Attached nodes verify assignments and execute Wasm with Wasmtime. Host
|
||||
operations are available only through imports backed by granted capabilities.
|
||||
- The DAP adapter maps a virtual process and its tasks to ordinary debugger
|
||||
processes and threads without pretending that source-level stepping exists.
|
||||
|
||||
The standalone Core coordinator is the public self-hosted service. The Hosted
|
||||
coordinator wraps the same Core service with private identity-provider,
|
||||
community-policy, operator, and deployment code. Public/private is a source
|
||||
distribution boundary, not an authority boundary.
|
||||
|
||||
## State
|
||||
|
||||
Durable Postgres state contains tenants, users, projects, credentials,
|
||||
permissions, source-provider configuration, and service policy records. Active
|
||||
virtual processes, assignments, debug epochs, transient VFS views, and artifact
|
||||
locations are intentionally ephemeral for the MVP. Restarting the coordinator
|
||||
therefore preserves identity and project configuration but ends active work.
|
||||
|
||||
## Execution and placement
|
||||
|
||||
Wasm is the execution substrate, not a capability. The coordinator main uses a
|
||||
small fixed capless import set. A node task's `TaskSpec` declares the additional
|
||||
host operations and environment it needs, and a node is eligible only when its
|
||||
reported capabilities satisfy those requirements. For example, a Wasm task may
|
||||
request command execution in a declared Linux environment; a user-attached node
|
||||
with rootless Podman can provide that operation, while hosted community
|
||||
infrastructure denies arbitrary native commands and hosted containers.
|
||||
|
||||
The build-system workflow is the MVP wedge. General distributed application
|
||||
runtime features are deliberately outside the initial release.
|
||||
Loading…
Add table
Add a link
Reference in a new issue