- Add MariaDB (REL) IPL validation — master required, secondary non-fatal
- Add RelNodeConfig / RelInstanceConfig structs with master/secondary pattern
- Add rel_services section to beds.toml and test fixture
- Add detailed topology commentary to beds.toml covering standalone,
master/replica, Galera cluster, and multi-DB-per-node configurations
- Add developer wiki (wiki/) covering:
- Origin story — PHP Namaste history, production record, why Rust
- Architecture overview — full system diagram, all layers explained
- The four nodes — appServer, admin, segundo, tercero with real-world context
- IPL sequence — every step documented with rationale for ordering
- Configuration system — layering, env selection, adding new sections
- Queue topology — exchanges, routing keys, broker bindings, vhost isolation
- Template system — REC/REL, TLA convention, cache map, warehousing
- Event lineage — compound event IDs, parent/child tracking, msLogs schema
- Glossary
- Update README with wiki index and MariaDB status
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
37 lines
3.7 KiB
Markdown
37 lines
3.7 KiB
Markdown
# Glossary
|
|
|
|
| Term | Definition |
|
|
|---|---|
|
|
| **AMQP** | Advanced Message Queuing Protocol. The wire protocol used by RabbitMQ. BEDS uses AMQP 0-9-1 exclusively — no vendor-specific extensions. |
|
|
| **appServer** | The primary BEDS node role. Handles all client-facing CRUD operations. |
|
|
| **admin** | The administrative BEDS node role. Handles logging, auditing, metrics, and administrative events. |
|
|
| **BEDS** | Back End Data System. The framework. |
|
|
| **broker** | A Tokio async task that listens on one AMQP queue, processes one event type, and routes results back. |
|
|
| **broker pool** | The collection of broker tasks running on a node. Pool size is configured per broker type in `beds.toml`. |
|
|
| **CALGON** | Async ticket pattern. Client submits a request, receives a GUID immediately, polls for the result later. Used for long-running operations. |
|
|
| **closed_class** | Template flag. When true, only internal BEDS services can instantiate the template. When false, external partners may also access it. |
|
|
| **COOL storage** | Warehoused data. Maintains full schema and indexing. Queryable but not on the live production data path. |
|
|
| **COLD storage** | Archived data. Reformatted (typically CSV). Not directly queryable by BEDS. |
|
|
| **depth** | Event lineage field. Integer counting levels from the root event. Root events have depth=0. |
|
|
| **event_id** | Compound event identifier: `{wbid}.{env}.{guid}`. Unique across the entire cluster. |
|
|
| **factory** | The dispatch layer. Maps a template name to the correct database adapter at runtime. |
|
|
| **HOT storage** | Live production data. The primary MongoDB and MariaDB instances. |
|
|
| **IPL** | Initial Program Load. The BEDS bootstrap sequence. Term borrowed from IBM mainframe terminology. |
|
|
| **is_local** | Config flag per service. Declares that this service runs on the current physical machine. Brokers are only started for local services. |
|
|
| **journaling** | Recording a journal entry for every destructive operation on a collection. Distinct from database-level journaling. |
|
|
| **NamasteCore** | The unified CRUD trait. Every database adapter and every template implements it. The application layer only calls NamasteCore methods. |
|
|
| **Namaste** | The internal codename for the PHP implementation of BEDS. The Rust rewrite is named rustybeds. |
|
|
| **parent_id** | Event lineage field. The `event_id` of the event that spawned this one. Empty string for root events. |
|
|
| **REC** | Record. MongoDB document store. Template type for document collections. |
|
|
| **REL** | Relational. MariaDB relational store. Template type for relational collections. |
|
|
| **rpi** | Records Per Interval. Throttle applied to a broker's fetch rate. Prevents a single broker from overwhelming the database. |
|
|
| **segundo** | The warehousing BEDS node role. Manages data lifecycle — moving records from HOT to COOL storage. Spanish for "second." |
|
|
| **TLA** | Three-Letter Abbreviation. Appended to every field name in a collection to namespace fields and eliminate ambiguity in multi-collection queries. |
|
|
| **template** | A TOML configuration file defining a data collection — schema, indexes, behavioural flags, access controls, lifecycle policy. |
|
|
| **template_class** | Human-readable collection name declared in the template. Used in logging, admin UI, and the REST API catalog. |
|
|
| **tercero** | The user and session management BEDS node role. Spanish for "third." |
|
|
| **TLA** | Three-Letter Abbreviation — see above. |
|
|
| **WARM storage** | Data being restored from COLD back to HOT. Transitional state. |
|
|
| **wbid** | White-box identifier. 2-character corporate prefix prepended to every MongoDB collection name. Declared in `[id]` in `beds.toml`. |
|
|
| **WORM** | Write Once Read Many. The append-only pattern used for log collections. Log records are immutable after insert. |
|