Sockets: running actors get TCP, UDP, and DNS through wasi:sockets; candidates get no network
This commit is contained in:
+4
-3
@@ -6,7 +6,8 @@ when this file disagrees with them, they win.
|
||||
## The shape
|
||||
|
||||
- **Actors are WASI commands, not components with interfaces.** stdin,
|
||||
stdout, files, and HTTP are enough, and every language can do them.
|
||||
stdout, files, HTTP, and sockets are enough, and every language can do
|
||||
them.
|
||||
- **Messages are JSON lines through a broker, fire and forget.** Like
|
||||
Erlang: no acknowledgments, no request/response. A reply is a message with
|
||||
`reply_to`. Sausage is not a reliable message bus.
|
||||
@@ -27,7 +28,7 @@ actor, or a change that the agent makes to itself.
|
||||
tests before an install, and the rollback of a version that crash-loops.
|
||||
Without that rollback, a broken self-upgrade would end the agent.
|
||||
- **No permissions, no limits, no hiding.** Any actor can message, upgrade,
|
||||
or stop any actor, read every folder, and use HTTP. People who want rules
|
||||
or stop any actor, read every folder, and use the network. People who want rules
|
||||
can build them.
|
||||
- **No re-delivery and no state snapshots.** A crash loses the message, and
|
||||
all versions of an actor share `data/` and `public/`. A rollback restores
|
||||
@@ -45,7 +46,7 @@ actor, or a change that the agent makes to itself.
|
||||
then. `versions/` keeps every version that was installed, so a rollback
|
||||
can always go back. A file that fails stays where it was put.
|
||||
- **Tests are JSON transcripts** next to the source. They run on a copy of
|
||||
the actor's state, without HTTP, so a test cannot send real requests.
|
||||
the actor's state, without network, so a test cannot send real requests.
|
||||
- **`broker` and `cargo` never answer a reply,** so no two actors answer
|
||||
each other forever. The agent starts a turn only for text that is not a
|
||||
reply, for the same reason.
|
||||
|
||||
Reference in New Issue
Block a user