# Architecture The isle daemon is the central point around which all operations occur. Users of the isle command-line tool (or, soon, a GUI) communicate with the daemon over a local RPC socket to issue commands, for example to tell it to join a new network or to retrieve the names of hosts in an already-joined network. For every network which is joined, the isle daemon will create and manage sub-processes to provide certain parts of its functionality. These include: * A [nebula][nebula] instance to provide VPN functionality. * A [dnsmasq][dnsmasq] instance to act as DNS server. * Zero or more [garage][garage] instances, depending on how storage is configured on the host, to provide the S3 storage layer. The isle daemon considers the configuration and management of these sub-processes to be an implementation detail. In other words, its RPC interface, and therefore all user interfaces, do not expose members to the fact that these sub-processes exist, or even that these projects are being used under the hood. ![Architectural diagram](./architecture.svg) [nebula]: https://github.com/slackhq/nebula [garage]: https://garagehq.deuxfleurs.fr/ [dnsmasq]: https://dnsmasq.org/doc.html