We are in IoT era, and most of new bee’s like me having the challenges to choose the right architecture or design implementation for securely send messages from device to any cloud without any data loss.
So based on my analysis, I have started with MQTT and below is high level design
Good news is it works, and send data to cloud. But I am not able figure out how to trace the messages which are successfully sent to cloud or not! How do I make sure message delivery is success. Do I need to have internal small SQL lite DB to store the messages and mark it as success if it delivered to the cloud?
Secondly, Is it secure design? What happens device landed in to wrong hands, will he/she start flooding my cloud data center? I am planning to use certificates but does it solve the needs?
I am using MQTTnet from https://github.com/chkr1011/MQTTnet
I am planing to try out RabbitMQ. Is it right choice for my need?
Secondly. sending messages to cloud is right design? do we need a server in between to filter or trace messages? may be some security appliances can be placed between device and cloud?