From 288be4d3d11e7520aa18645b6c88ff8ee4d730dd Mon Sep 17 00:00:00 2001
From: Gaetan Lepage <gaetan.lepage@inria.fr>
Date: Mon, 29 Nov 2021 13:42:14 +0100
Subject: [PATCH] [README] added 'Implementation overview' paragraph

---
 README.md | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/README.md b/README.md
index 99fc688..acfdf03 100644
--- a/README.md
+++ b/README.md
@@ -4,6 +4,22 @@
 
 Link: [robotlearn.gitlabpages.inria.fr/cluster-monitor](https://robotlearn.gitlabpages.inria.fr/cluster-monitor/)
 
+## Implementation overview
+
+The cluster monitor counts three entities:
+- The **data fetcher** is running directly on an inria workstation (currently `alya`). It is
+  performing `ssh` commands to other nodes (especially `access1-cp`) to gather the cluster state.\
+  **Code:** `rl_hm/data_fetcher/`
+- The **backend server** is running on a Linux server external to Inria and is receiving the **data
+  fetcher** updates through an TCP socket connection running over an SSH tunnel.
+  It exposes a [Socket.IO](https://socket.io/) server to the web clients that connect to it.
+  As soon as it receives an update from the **data fetcher**, it pushes it to all of the connected
+  clients through the _socket-io_ connection.\
+  **Code:** `rl_hm/backend/`
+- Finally, the web clients run a javascript application that connects to the _socket-io_ server
+  (**backend**) and updates the html page with the reveived data.\
+  **Code:** `public/`
+
 ## Acknowlegment
 
 - **David Emukpere:** for his numerous advice and help about web development and infrastructure.
-- 
GitLab