InfluxDB is an open-source time series database with restricted features with support for processing data from Graphite. CouchDB purely a free software. InfluxDB is quite different from CouchDB. InfluxDB supports SQL style query. InfluxDB accepts data via HTTP, TCP, and UDP and directly supports Grafana. If you use TIG Stack (Telegraf, InfluxDB, and Grafana), within half an hour you’ll get dashboard for IoT things.
That is where the fun of free ends. InfluxDB is not a free software but “open source”. Free version of InfluxDB will not scale. CouchDB, on the other hand is a free software under Apache project. It is not just easy to make Grafana working with CouchDB. The way is CouchDB with Prometheus, Grafana and unlike TIG Stack (Telegraf, InfluxDB, and Grafana), documentations to integrate with Arduino not exactly easy. Some versions of Grafana has bugs which prevents icons to get displayed.
If you decide to use TIG Stack (Telegraf, InfluxDB, and Grafana) as IoT backend, you’ll really get lot of scripts and examples to work. It will not really consume much time to setup even on desktop. TIG Stack (Telegraf, InfluxDB, and Grafana) with completely free InfluxDB will prevent to scale. Grafana really for adding lot of devices.
On the other hand, CouchDB makes the device coding part (see our discussion on sending data from ESP32 to CouchDB) is smooth – CouchDB simply eliminates the need of middleware.
What will be the conclusion? If you are serious about building IoT platform and maintaining for long duration, then CouchDB will suck huge disk space (we discussed that part).
Exactly for these situations MQTT server is the best choice. ThingsBoard provides a dashboard and gradually the number of free software for IoT is increasing. InfluxDB unfortunately is marked as “Bait-and-switch” by some. Whenever you need to build a scalable system, it will force to paid version. Probably you are not seeking SQL style NoSQL database.
Case of IBM Watson IoT platform looks like backend is running CouchDB – it is not so easy. Their platform is scalable, too big setup enough to handle TB of RAM need. Unfortunately we need to trash HTTP POST way over MQTT for IoT (opinion may vary). MQTT is data centric, HTTP is document-centric. MQTT is lightweight and have publish/subscribe model. We gave examples of CouchDB with ESP32 Arduino for too small works. For medium sized projects, it is practical to prefer MQTT.