Promote service modules to services/ directory; add AmqpConnection + async IPL
- Flat src/amqp.rs, src/mongo.rs, src/mariadb.rs promoted to src/services/{amqp,mongo,mariadb}/
- services/amqp/connection.rs: AmqpConnection struct with connect() and declare_exchange()
- services/amqp/error.rs: AmqpError type (thiserror, wraps lapin::Error)
- ipl() made async; #[tokio::main] added to main()
- IPL step 3b: authenticate to RabbitMQ + declare beds.events topic exchange (durable)
- Added lapin = "2" and tokio = { version = "1", features = ["full"] } to Cargo.toml
- 12 unit tests pass
- Docs: README, CLAUDE.md, wiki/04-ipl.md, wiki/06-queue-topology.md updated
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
39
claude.md
39
claude.md
@@ -29,26 +29,33 @@ This is not a greenfield project. The architecture is proven. The Rust rewrite e
|
||||
rustybeds/
|
||||
├── src/
|
||||
│ ├── config/
|
||||
│ │ ├── mod.rs # load() + load_from() — layered TOML config
|
||||
│ │ └── structs.rs # Typed config structs (serde Deserialize)
|
||||
│ ├── amqp.rs # RabbitMQ transport — validate(), future channel/queue ops
|
||||
│ ├── mariadb.rs # MariaDB transport — validate_all(), master/secondary pattern
|
||||
│ ├── mongo.rs # MongoDB transport — validate_all(), future adapter ops
|
||||
│ ├── lib.rs # Public API surface for integration test harness
|
||||
│ ├── logging.rs # tracing + journald + console mirror init
|
||||
│ └── main.rs # ipl() sequence + main()
|
||||
│ │ ├── mod.rs # load() + load_from() — layered TOML config
|
||||
│ │ └── structs.rs # Typed config structs (serde Deserialize)
|
||||
│ ├── services/
|
||||
│ │ ├── mod.rs # Groups external service transport modules
|
||||
│ │ ├── amqp/
|
||||
│ │ │ ├── mod.rs # validate() — TCP reachability pre-flight
|
||||
│ │ │ ├── connection.rs # AmqpConnection — auth + exchange declare
|
||||
│ │ │ └── error.rs # AmqpError type
|
||||
│ │ ├── mongo/
|
||||
│ │ │ └── mod.rs # validate_all() — TCP reachability
|
||||
│ │ └── mariadb/
|
||||
│ │ └── mod.rs # validate_all() — master/secondary pattern
|
||||
│ ├── lib.rs # Public API surface for integration test harness
|
||||
│ ├── logging.rs # tracing + journald + console mirror init
|
||||
│ └── main.rs # async ipl() sequence + #[tokio::main] main()
|
||||
├── config/
|
||||
│ ├── beds.toml # Base config — checked in, no credentials
|
||||
│ ├── env_dev.toml # Dev overrides — gitignored
|
||||
│ ├── env_qa.toml # QA overrides — gitignored
|
||||
│ └── env_prod.toml # Prod overrides — gitignored
|
||||
│ ├── beds.toml # Base config — checked in, no credentials
|
||||
│ ├── env_dev.toml # Dev overrides — gitignored
|
||||
│ ├── env_qa.toml # QA overrides — gitignored
|
||||
│ └── env_prod.toml # Prod overrides — gitignored
|
||||
├── templates/
|
||||
│ ├── example_rec.toml # Canonical self-documenting REC template
|
||||
│ └── mst_logger_rec.toml # Logger collection template (msLogs)
|
||||
│ ├── example_rec.toml # Canonical self-documenting REC template
|
||||
│ └── mst_logger_rec.toml # Logger collection template (msLogs)
|
||||
├── tests/
|
||||
│ ├── common/mod.rs # Shared test helpers — load_test_config()
|
||||
│ ├── common/mod.rs # Shared test helpers — load_test_config()
|
||||
│ └── fixtures/
|
||||
│ └── beds_test.toml # Canonical test config fixture
|
||||
│ └── beds_test.toml # Canonical test config fixture
|
||||
├── Cargo.toml
|
||||
└── CLAUDE.md
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user