Design decisions
Each decision is recorded as an ADR in
docs/adr/. A decision is
changed by a new record that supersedes the old one, never by rewriting it. ADRs 0001 to
0008 say stream. Read it as channel (ADR-0009).
| ADR | Decision | Status | Explained in |
|---|---|---|---|
| 0001 | Record architecture decisions in docs/adr/ |
Accepted | — |
| 0002 | Own only communication with no other home | Accepted; its Decision superseded by 0011 | What is cynapse, What cynapse stores |
| 0003 | Entries: UUIDv7 identity, owner-assigned seq, immutable |
Built | Entries |
| 0004 | Channels: UUID identity, renameable handles, anchor entries | Built | Channels |
| 0005 | Types and tags are namespaced and defined by consumers | Built | Types, tags and traits |
| 0006 | State records, views, and lifecycle instead of deletion | Built, except leases | State and lifecycle, Views |
| 0007 | Stock SQLite outside the repository; the write transaction orders | Built for one machine | Storage |
| 0008 | Routing kinds, prefixed conventions, and init-cynapse |
Accepted, not built | — |
| 0009 | Call the stream a channel | Built | Channels |
| 0010 | A network of subjects across stores | Accepted, not built | Subjects across stores |
| 0011 | Store only what no other store can; guide and compose | Accepted, not built | What cynapse stores |
| 0012 | Channels are keyed by subject: address and work channels | Built | Subjects across stores |
| 0013 | Messaging between participants on work and address channels | Built | Messaging, cynapse and the runtime |
The status words are defined on Status. Which of these decisions are expensive to unwind is listed on How cynapse fits together.
Evidence
Section titled “Evidence”The research behind these decisions, with claim IDs such as LC10 or SY08, is in
.research/agent-messaging-architecture/.