Architecture

The Zonemaster Backend is a system for performing domain health checks and keeping records of performed domain health checks.

A Zonemaster Backend system consists of at least three components: a single Database, a single Worker and one or more Web backends.

Components

Database

The Database stores health check requests and results. The Backend architecture is oriented around a single central Database.

Worker

A Zonemaster Worker is a daemon that picks up test requests from the Database, runs them using the Engine library, and records the results back to the Database. A single Worker may handle several requests concurrently. The Backend architecture supports a single Worker interacting with a single Database.

TODO: List all files these processes read and write.

TODO: List everything these processes open network connections to.

TODO: Describe in which order test are processed.

TODO: Describe how concurrency, parallelism and synchronization works within a single Worker.

TODO: Describe how synchronization works among parallel Workers.

Web backend

A Zonemaster Web backend is a daemon providing a JSON-RPC interface for recording test requests in the Database and fetching test results from the Database. The Backend architecture supports multiple Web backends interacting with the same Database.

TODO: List all ports these processes listen to.

TODO: List all files these processes read and write.

TODO: List everything these processes open network connections to.

Glossary

Test

Batch

Test result

Test module

Message

Policy

Profile

TODO: Come up with a better name to distinguish it from config profiles.

Config profile

Config profiles are configured under the the ZONEMASTER section of zonemaster_backend.ini.

TODO: Describe this in greater detail.

Engine

The Zonemaster Engine is a library for performing tests. It's hosted in its own repository.