I vote for MQTT
Then you can link disjoint pieces that can run as separate processes or even on separate machines. AND the pieces can be easier to debug. I just finished a IoT project with temperature sensors that uses MQTT and a common JSON structure. all the little bits were easy to build and test.