Future Roadmap
odirscan is designed to evolve from a single-process tool into a distributed scanning system. The current architecture intentionally uses patterns that map cleanly onto distributed primitives.
Design Principles
- Build on existing technologies -- Use established tools for networking and clustering rather than building custom solutions. gRPC for inter-service communication, Consul for service discovery and health checking.
- Message-based communication -- The current actor-like message types (
ScanRequestMessage,ScanResultMessage,ScanFindingMessage) are designed to translate directly into gRPC service definitions.
Planned Architecture
gRPC Services
The scanning, tagging, and result serving functions will be exposed as gRPC services, allowing workers to run on separate machines.
Consul Integration
Service discovery via Consul will enable:
- Automatic registration of scanner workers
- Health checking for worker availability
- Configuration distribution via Consul KV
Distributed Worker Coordination
Multiple scanner workers will coordinate through a central orchestrator, pulling work from a shared queue. The existing ScanRequestMessage / ScanResultMessage pattern maps to request/response RPCs.
Multi-Node Scanning
The proxy rotation system already supports distributing requests across multiple Mullvad relays. In the distributed architecture, each worker node can maintain its own proxy pool, providing natural load distribution.