Nile has the following three entities:


Nile can run even if instances are offline because the information about nodes and instances is stored on IPFS, the clients browse IPFS files in which are contained links to other IPFS files in which are contained more specific information about every entity.

Communication The communication between nodes, clients and instances is protocol agnostic, it means that in the same network a node can listen requests using a HTTP server and another one using WebSockets. We created a library that handles this for you; so, in order to send a message to a node on HTTP or a node on WebSockets, you use the same API. The communication protocol is inspired by PubSub, entities can subscribe and publish messages to channels.

In the following image you can see an instance publishing a message to a generic channel, from the instance point of view, it is as simple as toAllEntities(“hello!”) but under the hood the message is being listened by entities from different protocols, you can visualize each protocol as every single pipe inside the big pipe that groups them all.


Next If you want to learn more about how entities communicate, go to the next section!

Please help improve this page.