The whole architecture is based on a non-blocking distributed code based with socket connected data flows (ES6, NodeJS, MongoDB and REDIS & Swift for Mac). We collected the raw logs from the user machine and aggregate it to a usable format.

We had to do data reduction to optimise the data and fetch the data faster from the database. Besides, we also used REDIS to view the user’s live log and to collect the user’s log continuously without any downtime.