Skip to content

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.

The research behind these decisions, with claim IDs such as LC10 or SY08, is in .research/agent-messaging-architecture/.