doc: add Architecture section clarifying 9P/D-Bus dual-backend design
This commit is contained in:
parent
f434e70849
commit
b620ccca4f
21
README.md
21
README.md
|
|
@ -91,13 +91,26 @@ Monorepo with Git submodules. Each submodule has its own Go module (except `el`
|
|||
|
||||
---
|
||||
|
||||
## Architecture
|
||||
|
||||
Ollie has two session manager backends that run side-by-side. Both embed the same core library and expose the same features; they differ in interface philosophy and deployment context.
|
||||
|
||||
| | 9P (`olliesrv`) | D-Bus (`ollied`) |
|
||||
|---|---|---|
|
||||
| Interface | Synthetic filesystem | Desktop bus methods + signals |
|
||||
| Best for | Scripts, remote access, containers, multi-agent | Desktop apps, KDE integration, GUI frontends |
|
||||
| Network | Native (mount over TCP) | Local session bus |
|
||||
| Dependencies | None beyond Go runtime | D-Bus daemon, desktop session |
|
||||
|
||||
Use whichever fits your environment — or both at once.
|
||||
|
||||
---
|
||||
|
||||
## 9P: everything is a file
|
||||
|
||||
The 9P filesystem server (`olliesrv`) exposes the entire agent runtime as a synthetic filesystem. This is not a convenience wrapper — it is the primary interface, and it provides architectural benefits that no RPC or REST API can match.
|
||||
The 9P server exposes the agent runtime as a synthetic filesystem. Every session is a directory; every operation is a read or write.
|
||||
|
||||
### Why a filesystem?
|
||||
|
||||
Every session is a directory. Every operation is a read or write. There is no client library, no SDK, no protocol buffer — `echo`, `cat`, `tail`, and `rm` are the API.
|
||||
There is no client library, no SDK, no protocol buffer — `echo`, `cat`, `tail`, and `rm` are the API.
|
||||
|
||||
```sh
|
||||
# Create a session
|
||||
|
|
|
|||
Loading…
Reference in New Issue