How It Works
Architecture and operating model
Cyprob installs as a single binary, and PostgreSQL is its only dependency. When you need capacity you add a worker, and the architecture stays as it was.
What the architecture looks like
A management node sits at the center of the installation. It plans scan jobs, writes them to the queue and collects the results. The scan servers, called workers, listen to the queue, take a job and write the result back. PostgreSQL is the only ground the two share. No separate message queue is installed, and no separate coordination service.
The number of components you have to operate is kept low. Fewer components mean a smaller failure surface and less operating load in a closed network.

How work is distributed
Each scan request is split into small jobs and written to the queue. Workers take jobs through a database lock, so the same job is never handed to two servers at once. If a worker stops halfway, another one takes the job over. A job that cannot finish is retried, and a job that still fails is held in a separate queue instead of being dropped.
Results start arriving before the scan ends. A finding reaches the screen the moment it is found, so the team can start work on the first critical result without waiting for a long scan to complete.
How it grows
When you need more capacity, you install a new worker and connect it to the cluster. The management node sees the new server and includes it in job distribution. To scan a remote part of the network you place a worker in that segment, and the center stays the same.
Common questions
Why is there no separate message queue?
Because PostgreSQL already covers it. The queue and the locks live in the database that is required anyway. Fewer components mean a smaller failure surface and less to operate on a closed network.
What happens to a scan when a worker dies?
It continues. Jobs are claimed with locks, so the silent worker's job is handed to another. Nothing written to the queue is lost, and a job that keeps failing is set aside for review.
Does growing capacity change the architecture?
No. A new worker is installed and joins the cluster; the management node sees it and adds it to the distribution. For a remote region you place a worker there and the centre stays as it is.