2

As I am new to the IoT world, I would like to ask for a clarification.

I was reading somewhere about the general idea of having devices communicating with each other or storing information in a database, through an edge server. And then I started reading about MQTT communication protocol which among others mentions the notion of a broker who "manages" the information of the MQTT clients.

So, is MQTT broker an edge server? If not what is the difference between them?

  • 2
    you are trying to compare oranges and fruit – jsotola Oct 25 '19 at 4:07
  • 2
    It may help if you define what you think an "edge server" is. – hardillb Oct 25 '19 at 6:38
  • 1
    Hi Stathis, please elaborate on what your understanding of an edge server is and add that to the question via edit. Otherwise it will be very hard for people to give you helpful answers. – Helmar Oct 25 '19 at 18:42
1

Your question is somewhat ambiguous, but what you are asking does seem to fit the AWS IoT Greengrass architecture, so I'll describe it using that topology.

First of all, you should understand the basic pub/sub topology of MQTT itself. MQTT relies on a broker to receive all messages (published) and then forward those messages on to any devices that have told the broker that they want to receive messages with a specific topic (subscribed). Devices that send messages and devices that receive messages don't have to know about each other. All communication is routed via the broker(s). MQTT Topology - Original Image from HiveMQ MQTT Essentials -

A cloud based MQTT broker is part of AWS IoT Core and handles the routing of MQTT messages. In the AWS Greengrass topology, a GG core device communicates with the AWS IoT cloud service, and it also acts as a gateway for IoT edge devices. So you might have one Raspberry Pi running the GG Core software that communicates with AWS IoT, along with a few dozen ESP32s with sensors running FreeRTOS that communicate with the Raspberry Pi on the same local network. In this case, the data from the ESP32s don't go directly to AWS. They are routed through the local Raspberry Pi.

In addition to acting as a gateway, the Raspberry Pi can also act upon locally collected data from the ESP32s without having to communicate with the cloud. It can also aggregate data collected from the local ESP32s and push it up to the cloud in one message rather than sending a separate MQTT message for every piece of data.

To summarize, in this scenario the MQTT broker is in the AWS cloud, the Raspberry Pi is a Greengrass Core "edge server", and the ESP32s are edge devices that only communicate on the local network.

AWS IoT Greengrass - Original Image from Amazon Web Services Developer Guide -

  • 1
    Hi John, please add attributions for the things you quoted from AWS, e.g. the pictures and whatever text is quoted as well. When in doubt have a look at the help about referencing. – Helmar Oct 25 '19 at 20:27
  • Thanks for letting me know. Attributions for the images have been added. I changed the first image as I couldn't find the original source. Text is all my own. Hopefully this meets the referencing guidelines. – John S Oct 26 '19 at 0:17
  • Thank you, that's ok now :) – Helmar Oct 26 '19 at 10:22

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.