aboutsummaryrefslogtreecommitdiff
path: root/readme.md
diff options
context:
space:
mode:
Diffstat (limited to 'readme.md')
-rw-r--r--readme.md15
1 files changed, 15 insertions, 0 deletions
diff --git a/readme.md b/readme.md
index 28fedd0..c7d1070 100644
--- a/readme.md
+++ b/readme.md
@@ -2,6 +2,21 @@
Generic task queue server with scripts for downloading with different tools.
+## Architecture
+
+There is a central task queue server (isdad) and multiple workers that connect
+to that server to complete tasks.
+
+Tasks have a _key_ which is a string used to identify it and _data_ which is a
+arbitrary JSON object. Keys are in the format `kind:id`; The kind is used by the
+queue server to determine which workers are able to process the task.
+
+When workers connect to the queue server they register which tasks kinds they
+can process. After that they can accept tasks. Whenever a supported task exists,
+it will be assigned to that worker. The worker will then carry out the work and
+mark the task as completed. If workers disconnect (crash) while working, all
+assigned tasks will be moved back to the queue.
+
## Usage
First start the queue daemon process. It will save its state to JSON files in