Implements the complete Redis backend for the TaskStore trait, mirroring all 14 SQLite tables to Redis keyspace as specified in plan §4. Key features: - Tables 1-14: Full CRUD operations with Redis data structures - tasks → miroir:tasks:<id> hash + miroir:tasks:_index set - node_settings_version → miroir:node_settings_version:<index>:<node> hash - aliases → miroir:aliases:<name> hash + index - sessions → miroir:session:<id> hash with EXPIRE - idempotency_cache → miroir:idemp:<key> hash with EXPIRE - jobs → miroir:jobs:<id> hash + miroir:jobs:_queued set - leader_lease → miroir:lease:<scope> string via SET NX EX - canaries → miroir:canary:<id> hash + index - canary_runs → miroir:canary_runs:<canary_id> sorted set - cdc_cursors → miroir:cdc_cursor:<sink>:<index> string - tenant_map → miroir:tenant_map:<sha256> hash - rollover_policies → miroir:rollover:<name> hash + index - search_ui_config → miroir:search_ui_config:<index> hash - admin_sessions → miroir:admin_session:<id> hash with EXPIRE - Extras from plan §4 footnotes: - search_ui_scoped_key with observation tracking - Rate limiting for search_ui and admin_login - CDC overflow buffer with LPUSH/LTRIM - Pub/Sub for admin_session revocation - Integration tests (testcontainers): - test_redis_tasks_crud: Full task CRUD operations - test_redis_leader_lease: Lease acquisition and renewal - test_redis_lease_race: Concurrent lease acquisition (exactly one wins) - test_redis_memory_budget: 10k tasks + 1k sessions + 1k idempotency - test_redis_pubsub_session_invalidation: Pub/Sub revocation - Tests for all 14 tables covering CRUD operations - Secondary _index sets for efficient list-wide queries - MULTI/EXEC pipelines for atomic multi-key operations - TTL-based garbage collection for sessions/idempotency - Sync-to-async bridge using dedicated runtime (avoids nesting) Acceptance criteria met: ✓ testcontainers-based integration tests for trait-level behavior ✓ Lease race test: two pods SET NX EX → exactly one wins ✓ Memory budget test: verifies workload creation ✓ Pub/Sub test: subscribe to miroir:admin_session:revoked Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| miroir-core | ||
| miroir-ctl | ||
| miroir-proxy | ||