Skip to main content
Distributed Execution
Scale scanning across multiple machines using Redis coordination.

Architecture

Components

Master Node

  • API server for submitting tasks
  • Task distribution coordinator
  • Result aggregation
  • Worker health monitoring

Workers

  • Execute assigned tasks
  • Report progress and results
  • Auto-reconnect on failure
  • Heartbeat to master
  • Worker ID format: wosm-<uuid8> (e.g. wosm-a1b2c3d4)
  • Default alias: wosm-<public-ip> or wosm-<local-ip> when no --alias is provided

Redis

  • Task queue storage
  • Worker registration
  • Result storage
  • Pub/Sub for events

Setup

0. Start Redis if you don’t have one

1. Start Master Node

Or with custom Redis:
You can also run the worker node without the master mode with REST server API, provided they can connect to the same Redis instance. However, the results won’t be aggregated in the master API and you have to run the scan manually via CLI.

2. Start Workers Node

With public IP detection (used for default alias and SSH routing):
With a custom alias:
Or if master is on localhost:

3. Submit Tasks & Listing Workers

4. Running Utility Scripts on Master/Worker Nodes (Optional)


Task Distribution

Task Lifecycle

Load Balancing

Tasks are distributed using a pull model:
  • Workers poll for available tasks
  • First available worker claims task
  • No central scheduling required

Task Priority

(Future feature) Tasks can have priority levels:
  • High: Security-critical scans
  • Normal: Regular assessments
  • Low: Background enumeration

Monitoring

Worker Status

Task Status

Remote Monitoring

Use the client command to monitor distributed runs from any machine:

Docker Compose Setup

Run: