Drop DynamoDB from scope

Was originally a proof of concept in the PHP version. Dropped in
production as too expensive. Removed all references from docs.
Supported backends are MySQL/MariaDB and MongoDB only.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-31 11:06:20 -07:00
parent c87c3f1bac
commit 850993edb1
2 changed files with 9 additions and 10 deletions

View File

@@ -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 |

View File

@@ -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<dyn NamasteCore>` |
| 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