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:
@@ -38,7 +38,7 @@ Client Request
|
|||||||
NamasteCore Trait (unified CRUD interface)
|
NamasteCore Trait (unified CRUD interface)
|
||||||
│
|
│
|
||||||
▼
|
▼
|
||||||
Database Adapter (MySQL · MongoDB · DynamoDB)
|
Database Adapter (MySQL · MongoDB)
|
||||||
│
|
│
|
||||||
▼
|
▼
|
||||||
DBA-owned Schema (views · stored procedures · functions)
|
DBA-owned Schema (views · stored procedures · functions)
|
||||||
@@ -51,7 +51,7 @@ Client Request
|
|||||||
## Core Principles
|
## Core Principles
|
||||||
|
|
||||||
1. **AMQP-first** — all data access flows through the broker layer, no exceptions
|
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
|
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
|
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
|
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 |
|
| Structured logging (journald + console) | Done |
|
||||||
| Broker pool | Next |
|
| Broker pool | Next |
|
||||||
| NamasteCore trait | Planned |
|
| NamasteCore trait | Planned |
|
||||||
| Database adapters (MySQL, MongoDB, DynamoDB) | Planned |
|
| Database adapters (MySQL, MongoDB) | Planned |
|
||||||
| Factory dispatch | Planned |
|
| Factory dispatch | Planned |
|
||||||
| AI database object generation | Phase 2 |
|
| AI database object generation | Phase 2 |
|
||||||
|
|
||||||
|
|||||||
13
claude.md
13
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:**
|
**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.
|
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.
|
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.
|
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.
|
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
|
│ │ └── meta.rs # Request metadata parsing
|
||||||
│ ├── adapters/
|
│ ├── adapters/
|
||||||
│ │ ├── mysql.rs # gacPDO equivalent
|
│ │ ├── mysql.rs # gacPDO equivalent
|
||||||
│ │ ├── mongodb.rs # gacMongoDB equivalent
|
│ │ └── mongodb.rs # gacMongoDB equivalent
|
||||||
│ │ └── dynamodb.rs # gacDdb equivalent
|
|
||||||
│ ├── brokers/
|
│ ├── brokers/
|
||||||
│ │ ├── pool.rs # Broker pool management
|
│ │ ├── pool.rs # Broker pool management
|
||||||
│ │ └── broker.rs # Individual broker task
|
│ │ └── broker.rs # Individual broker task
|
||||||
@@ -55,7 +54,7 @@ beds/
|
|||||||
| PHP | Rust |
|
| PHP | Rust |
|
||||||
|-----|------|
|
|-----|------|
|
||||||
| `gaaNamasteCore` abstract class | `NamasteCore` trait |
|
| `gaaNamasteCore` abstract class | `NamasteCore` trait |
|
||||||
| `gacMongoDB`, `gacPDO`, `gacDdb` | Structs implementing `NamasteCore` |
|
| `gacMongoDB`, `gacPDO` | Structs implementing `NamasteCore` |
|
||||||
| `gacFactory::grabWidget()` | Match/dispatch returning `Box<dyn NamasteCore>` |
|
| `gacFactory::grabWidget()` | Match/dispatch returning `Box<dyn NamasteCore>` |
|
||||||
| Broker process pool | `tokio::spawn` task pool |
|
| Broker process pool | `tokio::spawn` task pool |
|
||||||
| SIGCHLD/planned obsolescence | Eliminated — Tokio tasks don't leak |
|
| SIGCHLD/planned obsolescence | Eliminated — Tokio tasks don't leak |
|
||||||
@@ -84,13 +83,13 @@ tokio = { version = "1", features = ["full"] }
|
|||||||
lapin = "2" # AMQP/RabbitMQ
|
lapin = "2" # AMQP/RabbitMQ
|
||||||
sqlx = { version = "0.7", features = ["mysql", "runtime-tokio-native-tls"] }
|
sqlx = { version = "0.7", features = ["mysql", "runtime-tokio-native-tls"] }
|
||||||
mongodb = "2" # MongoDB async driver
|
mongodb = "2" # MongoDB async driver
|
||||||
aws-sdk-dynamodb = "1" # DynamoDB
|
|
||||||
serde = { version = "1", features = ["derive"] }
|
serde = { version = "1", features = ["derive"] }
|
||||||
serde_json = "1"
|
serde_json = "1"
|
||||||
config = "0.14" # TOML config management
|
config = "0.14" # TOML config management
|
||||||
thiserror = "1"
|
thiserror = "1"
|
||||||
tracing = "1"
|
tracing = "0.1"
|
||||||
tracing-subscriber = "1"
|
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
|
||||||
|
tracing-journald = "0.3"
|
||||||
```
|
```
|
||||||
|
|
||||||
## Service Nodes
|
## Service Nodes
|
||||||
|
|||||||
Reference in New Issue
Block a user