# Implementation Plan — Issue #27: Scaffold Memory Service Rust project ## Metadata | Field | Value | |---|---| | Issue | [#27](https://git.shahondin1624.de/llm-multiverse/llm-multiverse/issues/27) | | Title | Scaffold Memory Service Rust project | | Milestone | Phase 4: Memory Service | | Labels | `type:infrastructure`, `priority:high`, `lang:rust`, `service:memory` | | Status | `COMPLETED` | | Language | Rust | | Related Plans | [issue-018.md](issue-018.md), [issue-022.md](issue-022.md) | | Blocked by | #16 (completed) | ## Acceptance Criteria - [x] Cargo workspace member created (`services/memory/`) - [x] Dependency on proto-gen crate - [x] Tonic gRPC server boilerplate compiles - [x] Configuration loading (address, port, DuckDB path, embedding endpoint) - [x] Stub endpoints with input validation for all 3 RPCs ## Architecture Analysis Follows the same scaffold pattern as audit (#18) and secrets (#22). Memory service has 3 RPCs: QueryMemory (server-streaming), WriteMemory, GetCorrelated. All are stubbed with input validation, returning Unimplemented until DuckDB and retrieval logic are wired in. ## Files to Create/Modify | File | Action | Purpose | |---|---|---| | `Cargo.toml` | Modify | Add services/memory to workspace | | `services/memory/Cargo.toml` | Create | Memory service crate | | `services/memory/src/lib.rs` | Create | Module re-exports | | `services/memory/src/main.rs` | Create | Server entry point | | `services/memory/src/config.rs` | Create | Config with DuckDB path, embedding endpoint | | `services/memory/src/service.rs` | Create | MemoryService stub with validation | ## Deviation Log _(No deviations)_