Problem:
- a few small devices running an agent written in Go (golang); OS is Linux x86_64
- the devices are behind a firewall but they can establish outgoing connections to a cloud server
- the devices must be able to reliably post some messages to a server in the cloud
- the devices have local storage and they can persist messages (up to a limit) if the network is down or the cloud server is not available for whatever reason
- the implementation on the devices must be very light weight, preferably without using another local helper server, though a light local process would be acceptable, but a library that can run in process might be preferred
- a simple REST HTTP POST to the cloud server is not acceptable because the devices must then solve the reliable delivery problem
Where should I start looking to do this with AMQP in Go, assuming an AMQP implementation is the right choice? Which implementation can help? RabbitMQ?