Agent

This is a module that will handle the communication with the cloud, it talks with the cloud via gRPC, which uses proto buffers underneath.
The motivation to use this is to support a bi-directional protocol that is efficient and can also ensure the implementation of the specification for both client and server.
The Djinn agent can talk to any backend server that supports the specification, the agent can also be disabled if there is no need to sync with a cloud service and communication via de Gateway is more than enough.