mirror of
https://github.com/mulgadc/spinifex.git
synced 2026-10-15 17:11:30 +00:00
4.4 KiB
4.4 KiB
Hive Development Roadmap
This roadmap has been integrated into the comprehensive HIVE_DEVELOPMENT_PLAN.md.
Update Nov 2025
- Implement multi-tenant support
- Move config settings from ~/hive/*.toml, to using Nats Jetstream for core config which can be synced between nodes.
- Implement a lightweight IAM using Nats Jetstream, vs current config files for auth settings.
- Implement Reed Solomon Encoding for Predastore (S3) objects and a WAL implementation, for storing multiple objects in a single shard (e.g 4MB), with the WAL referencing the location of each object (e.g 4kb min)
- Implement basic KY lookup, object key sha512 (bucket/key), location to shard on S3 (obj.0000124.bin), read WAL (e.g first 4096 bytes) to determine location of the object. e.g key-1234 => obj.0000124.bin, wal header (4096 bytes) > key-1234 == offset location (seek) 16384, len 32768.
- Read multiple nodes (e.g 5 predastore instances, k = 3 (data shards), n = 5 (total shards), n - k = 2 (parity shards) )
- Complete core scaffolding AWS SDK/API requirements (ec2 describe-instances, run-instances, etc)
- Implement UEFI support for image downloads and
qemuexec invm.go - Confirm Alpine Linux, fails import image AMI > (run-instance) ""Failed to read block from AMI source" err="request out of range" - Block size correct?
- Improve shutdown gracefully,
./scripts/stop-dev.shwaits 60 seconds, while qemu/nbd could still be shutting down. - Add delete-volume support via EBS (s3 vol-*) for terminated instance
- Add default LRU cache support for viperblock, depending on the instance type / volume size and system memory available.
Original TODO Items → Development Plan Integration
✅ Completed Integration
All original TODO items have been incorporated into the structured development phases:
| Original TODO | Status | Integrated Into | Phase |
|---|---|---|---|
| #1: Binary compile and install.sh | ✅ Planned | Phase 7: Task 7.1 (Binary Compilation) | Phase 7 |
| #2: Move daemon.go to services/hived/ | ✅ Planned | Phase 3: Task 3.2 (Specialized Services) | Phase 3 |
#3: VPC with openvs-switch as vpcd |
✅ Planned | Phase 5: Task 5.1 (VPC with Open vSwitch) | Phase 5 |
#4: AWS HTTP gateway (awsd) |
✅ Planned | Phase 3: Task 3.1 (AWS Gateway Service) | Phase 3 |
| #5: AWS SDK v2 input/output | ✅ Planned | Phase 2: Task 2.1 & Phase 3: Task 3.1 | Phase 2-3 |
#6: hive.service for systemd |
✅ Planned | Phase 7: Task 7.2 (System Service Integration) | Phase 7 |
| #7: Gossip and RAFT protocols | ✅ Planned | Phase 0: Task 0.1 (Service Registry) | Phase 0 |
| #8: etcd/KV for configuration sync | ✅ Planned | Phase 0: Task 0.1 (Distributed Config) | Phase 0 |
| #9: Smithy model code generation | ✅ Planned | Phase 2: Task 2.1 (Smithy Code Generation) | Phase 2 |
Development Phase Overview
Phase 0: Distributed Systems Foundation (1-2 weeks)
- Gossip, RAFT, and distributed configuration (#7, #8)
Phase 1: Development Environment Automation (2-3 weeks)
- Multi-service orchestration and hot reloading
Phase 2: AWS API Model Implementation (3-4 weeks)
- Smithy-based code generation (#9)
- AWS SDK v2 integration (#5)
Phase 3: Scalable Gateway and Daemon Architecture (2-3 weeks)
- AWS gateway service
awsd(#4) - Service refactoring to
hived(#2) - VPC daemon
vpcdfoundation (#3)
Phase 4: Service Integration and Orchestration (3-4 weeks)
- NATS clustering and cross-service coordination
Phase 5: Infrastructure Services (4-5 weeks)
- VPC networking with Open vSwitch (#3)
- Advanced VM features
Phase 6: Testing and Validation Framework (2-3 weeks)
- AWS CLI compatibility testing
Phase 7: Production Deployment and Packaging (2-3 weeks)
- Binary compilation and distribution (#1)
- Systemd service integration (#6)
- Production configuration management
Service Architecture
The development plan implements these services:
awsd- AWS API Gateway (TODO #4)hived- Main Hive compute daemon (TODO #2)vpcd- VPC networking daemon (TODO #3)- Predastore - S3 service (existing)
- Viperblock - EBS service (existing)
Getting Started
For development setup:
./scripts/dev-setup.sh # Setup complete development environment
./scripts/start-dev.sh # Start all services
For detailed implementation guidance, see HIVE_DEVELOPMENT_PLAN.md.