Database

    Currently, Simple IoT supports bbolt as a data store. This is an embedded keyvalue store that is used similar to how NoSQL databases are used. Genji is used to provide some convenience for storing and querying Go types on top of Bolt.

    The current database schema is several MongoDb schema design posts (1, 2, 3).

    As described in the architecture document, nodes and edges are the primary data structures stored in database.

    We currently use an external InfluxDB 1.x database for storing timeseries data, but eventually would like to have an embedded timeseries option -- perhaps built on bolt.