Bus state by template, no readers, and the ledger: designs 25, 32 and 55 and the glossary follow ADR 0595-0597
Research 082 graduated into three accepted records; the bus module's design (25) and the manifest's (32) are the home of bus state for every module, and the knowledge base (55) becomes its first ledger.
This commit is contained in:
+33
-3
@@ -213,7 +213,8 @@ every other domain has something to run on. **Recorded by** the controller and t
|
||||
A module reaches it by requiring `mesh-bus` (ADR 0128);
|
||||
one that does not require it has no account on it. Held by the `mesh-broker` seat, which is named
|
||||
after the role rather than the server, so the server can change without the seat doing so. The `nats`
|
||||
module holds it.
|
||||
module holds it. The **bus module** is the module holding `mesh-broker`; it also provides bus state (Data,
|
||||
ADR 0595).
|
||||
- **the deprecated broker** — the lavinmq module. It was the mesh's bus and is not any more. It keeps
|
||||
running as an **ordinary provider** of the `amqp` provision, for modules that need a message broker
|
||||
of their own the way something needs a database
|
||||
@@ -724,8 +725,8 @@ becomes a message). **Decided by** ADR 0227, 0231, 0240, 0252, 0283, 0564.
|
||||
|
||||
**Purpose.** To know every item of data a module holds, how precious it is, and to keep it recoverable.
|
||||
**Recorded by** the manifests' `data` declarations and every node's `node-backup` seat.
|
||||
**Upstream of** Delivery and Health and repair. **Decided by** ADR 0232, 0233, 0235, 0571.
|
||||
**Uses:** module, node, provider and consumer (Provisioning), person.
|
||||
**Upstream of** Delivery and Health and repair. **Decided by** ADR 0232, 0233, 0235, 0571, 0595, 0596, 0597.
|
||||
**Uses:** module, node, provider and consumer (Provisioning), person, bus module (Core), tool runner (Core).
|
||||
|
||||
- **data class** — how precious an item of data is, ranked by the operator: `irreplaceable`,
|
||||
`valuable`, `rebuildable`, `cache`; and `none` for a provision that keeps nothing of anybody's
|
||||
@@ -740,6 +741,25 @@ becomes a message). **Decided by** ADR 0227, 0231, 0240, 0252, 0283, 0564.
|
||||
self-check read them there, never the controller (ADR 0571 §5).
|
||||
- **sticky binding** — a consumer's tie to the data a provider keeps for it, which moves only by a
|
||||
person (ADR 0232).
|
||||
- **bus state** — what a module keeps on the bus, asked for in `requires` as a provision of the bus module, by a
|
||||
template and its options; created by the bus module and reached by the owner's account alone. Another module
|
||||
asks the owner's tools for its data, or hears its declared events (ADR 0595, ADR 0596).
|
||||
- **storage type** — how the bus keeps bus state: the **stream**, the base, or one built on it, the **key-value
|
||||
bucket**, the **object store** or the **ledger**, each with calls of its own (ADR 0595 §2).
|
||||
*Not:* ~~data type~~
|
||||
- **configuration** of a storage type — the settings it is given: what is kept, for how long, how much, and what
|
||||
happens when full. Never bare where it could be read as a config value (see [Homonyms](#homonyms)).
|
||||
- **template** — a storage type with a configuration, predefined and named: **state**, **events**, **work
|
||||
queue**, **log**, **objects** and **ledger** (ADR 0595 §2). What keeps its data safe, "when full" among it, is
|
||||
fixed by the template. *Template of bus state* where it could be read as a template file (see
|
||||
[Homonyms](#homonyms)). The template log is the module log of ADR 0297.
|
||||
- **option** of a template — one setting a module may change, within its bound, such as state's past values (1 to
|
||||
64) (ADR 0595 §3).
|
||||
- **ledger** — a storage type keeping, per instance of a type, a history of every **operation** (one change, kept
|
||||
in order) and a state derived from that history by each operation's **ledger effect** (one of a fixed set: set
|
||||
fields, set an entry of a map, append to a list, remove), through the tool runner's `apply` (ADR 0597).
|
||||
- **snapshot** of a ledger's state — the latest state of one instance, on a subject of its own, never expiring,
|
||||
from which a rebuild starts; distinct from the stream snapshot.
|
||||
|
||||
## Connectivity — how nodes and modules reach one another
|
||||
|
||||
@@ -1076,6 +1096,16 @@ renaming one sense, the old sense moves to a *Not:* line and becomes mechanical.
|
||||
| | an account in a group of the machine | **account group** | Placement |
|
||||
| domain | an area of the mesh that owns a set of concepts and the one word for each (ADR 0244), the sections of this page; the one sense "domain" keeps bare | **mesh domain** | The record |
|
||||
| | one of the eight concerns a direction and a design are reviewed against (playbook 01); never written bare | **architectural domain** | The record |
|
||||
| configuration | the settings of a storage type, which a template fixes or a module gives | **configuration** of a storage type | Data |
|
||||
| | anything a module reads that someone may change | **config value** | Config |
|
||||
| snapshot | the latest state of one ledger instance, from which a rebuild starts | **snapshot** of a ledger's state | Data |
|
||||
| | the bus's own backup of each stream | **stream snapshot** | Data |
|
||||
| template | a storage type with a configuration, asked for in `requires` | **template** of bus state | Data |
|
||||
| | a file with placeholders a provisioner fills | **template file** | Config, Provisioning |
|
||||
| option | a setting of a template a module may change | **option** of a template | Data |
|
||||
| | one choice of an ask to a person | an ask's **option** | Operator and conversation |
|
||||
| effect | what an operation does to a ledger's state | **ledger effect** | Data |
|
||||
| | a tool's mark: reads, acts or dangerous | a tool's **effect** | Identity and access |
|
||||
| push | the controller giving nodes their declarations, until release 6 | **send** (verb `push`) | Placement |
|
||||
| | a git push | **git push** | The record |
|
||||
| | a phone notification | **push notification** | Operator and conversation |
|
||||
|
||||
Reference in New Issue
Block a user