- 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>
3.7 KiB
3.7 KiB
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. |