I have an IoT use-case (Should I use the MQTT protocol?) and decided to implement the SMACK architecture. I hope, Up and running the SMACK stack would be very much cost. Right now I am not expecting that much data. In future, based on the increase of sensor data I'll implement SMACK stack.
The IoT devices will send approx. 100k messages/minute to the gateway via repeaters and the gateway will transfer the messages to the cloud. I want to track the employees in an organization. The sensors will be fixed on their ID card. The sensor sends the location related data (approx. 15KB/message) to the gateway via repeaters using BLE. It's for the analytical purpose. After the data passed to the cloud, I'll do some analytics and store into the DB and display on a web page. Based on this analytics data, I'll show the user's current location and also the user's moving locations of a certain passed time span (last 1hr or 2hr or 1day).
I'll do some processing over the data and send it to the front end/DB.
So If I use the below simple architecture with the use of Redis/MongoDB/CouchDB/Any GraphDB NoSQL layer and S3 as the storage to store historical data. So the cost would be very much low.
- Ingest into Redis/MongoDB/CouchDB/Any Graph DB,
- Copy into S3 over time and
- Expire in Redis/MongoDB/CouchDB/Any Graph DB.
So the NoSQL layer will have only the recent data and the S3 will have the historical data.
What would be the best choice in the NoSQL layer (i.e) MongoDB/Redis/CouchDB/Any GraphDB?