github.com/simpleiot/simpleiot@v0.18.3/docs/ref/architecture.md (about)

     1  # Architecture
     2  
     3  This document describes how the Simple IoT project fulfills the basic
     4  requirements as described in the top level [README](../../).
     5  
     6  There are two levels of architecture to consider:
     7  
     8  - **[System](architecture-system.md)**: how multiple SIOT instances and other
     9    applications interact to form a system.
    10  - **[Application](architecture-app.md)**: how the SIOT application is
    11    structured.
    12  - **[Clients](client.md)**: all about SIOT clients where most functionality is
    13    implemented.
    14  
    15  ## High Level Overview
    16  
    17  Simple IoT functions as a collection of connected, distributed instances that
    18  communicate via NATS. Data in the system is represented by nodes which contain
    19  an array of points. Data changes are communicated by sending points within an
    20  instance or between instances. Points in a node are merged such that newer
    21  points replace older points. This allows granular modification of a node's
    22  properties. Nodes are organized in a DAG (directed acyclic graph). This graph
    23  structure defines many properties of the system such as what data users have
    24  access to, the scope of rules and notifications, and which nodes external
    25  services apply to. Most functionality in the system is implemented in clients,
    26  which subscribe and publish point changes for nodes they are interested in.
    27  
    28  ![application architecture](images/arch-app.png)