diff --git a/README.md b/README.md index bcb54d1..a2e1426 100644 --- a/README.md +++ b/README.md @@ -38,7 +38,7 @@ Client Request NamasteCore Trait (unified CRUD interface) │ ▼ - Database Adapter (MySQL · MongoDB · DynamoDB) + Database Adapter (MySQL · MongoDB) │ ▼ DBA-owned Schema (views · stored procedures · functions) @@ -51,7 +51,7 @@ Client Request ## Core Principles 1. **AMQP-first** — all data access flows through the broker layer, no exceptions -2. **Database agnostic** — MySQL/MariaDB, MongoDB, and DynamoDB behind a unified trait; no DB-specific logic leaks upward +2. **Database agnostic** — MySQL/MariaDB and MongoDB behind a unified trait; no DB-specific logic leaks upward 3. **DBA-owned schema** — all data access goes through named database objects; the application calls template names, not queries 4. **Template-driven CRUD** — each data domain is a struct implementing `NamasteCore`; adding a domain means adding one file 5. **Config-driven nodes** — all nodes run the same binary; role is determined entirely by startup config @@ -125,7 +125,7 @@ The `config` crate deep-merges these at startup. Only keys present in `env.toml` | Structured logging (journald + console) | Done | | Broker pool | Next | | NamasteCore trait | Planned | -| Database adapters (MySQL, MongoDB, DynamoDB) | Planned | +| Database adapters (MySQL, MongoDB) | Planned | | Factory dispatch | Planned | | AI database object generation | Phase 2 | diff --git a/claude.md b/claude.md index d47cb53..470f250 100644 --- a/claude.md +++ b/claude.md @@ -18,7 +18,7 @@ This is not a greenfield project. The architecture is proven. The Rust rewrite e **Never violate these — they are the product:** 1. **AMQP-first** — all data access flows through RabbitMQ message brokers. No direct database connections from the application layer. Ever. -2. **Database agnostic** — the framework supports MySQL/MariaDB, MongoDB, and DynamoDB through a unified trait/factory pattern. No database-specific logic leaks into the broker or factory layers. +2. **Database agnostic** — the framework supports MySQL/MariaDB and MongoDB through a unified trait/factory pattern. No database-specific logic leaks into the broker or factory layers. 3. **DBA-owned schema** — developers never write queries. All data access goes through named database objects (views, stored procedures, functions). The application layer calls template names, not SQL. 4. **Template-driven CRUD** — each data domain is a Rust struct implementing the `NamasteCore` trait. Adding a domain means adding a struct. Nothing else changes. 5. **Single codebase, config-driven nodes** — all service nodes run the same binary. Node role (appServer, admin, segundo, tercero) is determined entirely by startup configuration. @@ -34,8 +34,7 @@ beds/ │ │ └── meta.rs # Request metadata parsing │ ├── adapters/ │ │ ├── mysql.rs # gacPDO equivalent -│ │ ├── mongodb.rs # gacMongoDB equivalent -│ │ └── dynamodb.rs # gacDdb equivalent +│ │ └── mongodb.rs # gacMongoDB equivalent │ ├── brokers/ │ │ ├── pool.rs # Broker pool management │ │ └── broker.rs # Individual broker task @@ -55,7 +54,7 @@ beds/ | PHP | Rust | |-----|------| | `gaaNamasteCore` abstract class | `NamasteCore` trait | -| `gacMongoDB`, `gacPDO`, `gacDdb` | Structs implementing `NamasteCore` | +| `gacMongoDB`, `gacPDO` | Structs implementing `NamasteCore` | | `gacFactory::grabWidget()` | Match/dispatch returning `Box` | | Broker process pool | `tokio::spawn` task pool | | SIGCHLD/planned obsolescence | Eliminated — Tokio tasks don't leak | @@ -84,13 +83,13 @@ tokio = { version = "1", features = ["full"] } lapin = "2" # AMQP/RabbitMQ sqlx = { version = "0.7", features = ["mysql", "runtime-tokio-native-tls"] } mongodb = "2" # MongoDB async driver -aws-sdk-dynamodb = "1" # DynamoDB serde = { version = "1", features = ["derive"] } serde_json = "1" config = "0.14" # TOML config management thiserror = "1" -tracing = "1" -tracing-subscriber = "1" +tracing = "0.1" +tracing-subscriber = { version = "0.3", features = ["env-filter"] } +tracing-journald = "0.3" ``` ## Service Nodes