- Created T026-practical-test task.yaml for MVP smoke testing - Added k8shost-server to flake.nix (packages, apps, overlays) - Staged all workspace directories for nix flake build - Updated flake.nix shellHook to include k8shost Resolves: T026.S1 blocker (R8 - nix submodule visibility)
104 lines
3.2 KiB
Markdown
104 lines
3.2 KiB
Markdown
# T003 Feature Gap Analysis - Consolidated Report
|
|
|
|
**Date**: 2025-12-08
|
|
**Status**: COMPLETE
|
|
|
|
## Executive Summary
|
|
|
|
| Component | Impl % | P0 Gaps | P1 Gaps | P2 Gaps | Est. Effort |
|
|
|-----------|--------|---------|---------|---------|-------------|
|
|
| chainfire | 62.5% | 3 | 5 | 0 | 2-3 weeks |
|
|
| flaredb | 54.5% | 1 | 5 | 4 | 3-4 weeks |
|
|
| iam | 84% | 2 | 4 | 2 | 2-3 weeks |
|
|
| **Total** | 67% | **6** | **14** | **6** | **7-10 weeks** |
|
|
|
|
## Critical P0 Blockers
|
|
|
|
These MUST be resolved before "Next" phase production deployment:
|
|
|
|
### 1. FlareDB: Persistent Raft Storage
|
|
- **Impact**: DATA LOSS on restart
|
|
- **Complexity**: Large (1-2 weeks)
|
|
- **Location**: flaredb-raft/src/storage.rs (in-memory only)
|
|
- **Action**: Implement RocksDB-backed Raft log/state persistence
|
|
|
|
### 2. Chainfire: Lease Service
|
|
- **Impact**: No TTL expiration, etcd compatibility broken
|
|
- **Complexity**: Medium (3-5 days)
|
|
- **Location**: Missing gRPC service
|
|
- **Action**: Implement Lease service with expiration worker
|
|
|
|
### 3. Chainfire: Read Consistency
|
|
- **Impact**: Stale reads on followers
|
|
- **Complexity**: Small (1-2 days)
|
|
- **Location**: kv_service.rs
|
|
- **Action**: Implement linearizable/serializable read modes
|
|
|
|
### 4. Chainfire: Range in Transactions
|
|
- **Impact**: Atomic read-then-write patterns broken
|
|
- **Complexity**: Small (1-2 days)
|
|
- **Location**: kv_service.rs:224-229
|
|
- **Action**: Fix dummy Delete op return
|
|
|
|
### 5. IAM: Health Endpoints
|
|
- **Impact**: Cannot deploy to K8s/load balancers
|
|
- **Complexity**: Small (1 day)
|
|
- **Action**: Add /health and /ready endpoints
|
|
|
|
### 6. IAM: Metrics/Monitoring
|
|
- **Impact**: No observability
|
|
- **Complexity**: Small (1-2 days)
|
|
- **Action**: Add Prometheus metrics
|
|
|
|
## Recommendations
|
|
|
|
### Before PlasmaVMC Design
|
|
|
|
1. **Week 1-2**: FlareDB persistent storage (P0 blocker)
|
|
2. **Week 2-3**: Chainfire lease + consistency (P0 blockers)
|
|
3. **Week 3**: IAM health/metrics (P0 blockers)
|
|
4. **Week 4**: Critical P1 items (region splitting, CLI, audit)
|
|
|
|
### Parallel Track Option
|
|
|
|
- IAM P0s are small (3 days) - can start PlasmaVMC design after IAM P0s
|
|
- FlareDB P0 is large - must complete before FlareDB goes to production
|
|
|
|
## Effort Breakdown
|
|
|
|
| Priority | Count | Effort |
|
|
|----------|-------|--------|
|
|
| P0 | 6 | 2-3 weeks |
|
|
| P1 | 14 | 3-4 weeks |
|
|
| P2 | 6 | 2 weeks |
|
|
| **Total** | 26 | **7-10 weeks** |
|
|
|
|
## Answer to Acceptance Questions
|
|
|
|
### Q: Are there P0 blockers before "Next" phase?
|
|
**YES** - 6 P0 blockers. Most critical: FlareDB persistent storage (data loss risk).
|
|
|
|
### Q: Which gaps should we address before PlasmaVMC?
|
|
1. All P0s (essential for any production use)
|
|
2. Chainfire transaction responses (P1 - etcd compatibility)
|
|
3. FlareDB CLI tool (P1 - operational necessity)
|
|
4. IAM audit integration (P1 - compliance requirement)
|
|
|
|
### Q: Total effort estimate?
|
|
**7-10 person-weeks** for all gaps.
|
|
**2-3 person-weeks** for P0s only (minimum viable).
|
|
|
|
## Files Generated
|
|
|
|
- [chainfire-gaps.md](./chainfire-gaps.md)
|
|
- [flaredb-gaps.md](./flaredb-gaps.md)
|
|
- [iam-gaps.md](./iam-gaps.md)
|
|
|
|
---
|
|
|
|
**Report prepared by**: PeerB
|
|
**Reviewed by**: PeerA - APPROVED 2025-12-08 05:40 JST
|
|
|
|
### PeerA Sign-off Notes
|
|
Report quality: Excellent. Clear prioritization, accurate effort estimates.
|
|
Decision: **Option (B) Modified Parallel** - see POR update.
|