summaryrefslogtreecommitdiff
path: root/PROTOCOL
diff options
context:
space:
mode:
Diffstat (limited to 'PROTOCOL')
-rw-r--r--PROTOCOL41
1 files changed, 41 insertions, 0 deletions
diff --git a/PROTOCOL b/PROTOCOL
new file mode 100644
index 0000000..0b17c3c
--- /dev/null
+++ b/PROTOCOL
@@ -0,0 +1,41 @@
+Messages are sent over nanomsg.
+
+Message format is JSON.
+
+All messages have one string key 'op', a string key 'role' and a
+unique name field, currently 'host'.
+
+'op' can be:
+- 'discover'
+- 'register'
+
+'role' can only be:
+- 'master'
+- 'coordinator'
+- 'worker'
+
+'host' is the FQDN or hostname of a coordinator (depends on the network
+setup).
+
+Operations:
+
+Discovery:
+
+Master sends:
+
+{ "op": "discover" }
+
+Coordinators answer with:
+
+All coordinators send:
+
+{ "op": "register", "role": "coordinator", "host": "server1",
+ "cpus": 2, "os": "cpe:\/o:arch:arch:rolling", "arch": "x86_64" }
+
+The coordinator sends its own configuration to the master.
+
+On receiving a 'register' operation the master must handle accordingly,
+usually adding the coordinator as known and alive and provide new
+platforms and architectures to run workers on. Also currently scheduled
+jobs must be examined.
+