есть брокер и есть клиенты. клиенты обмениваются сообщениями через брокер, подключаясь к нему по tcp. сообщение состоит из топика и данных (и флагов QoS и retained, но это уже продвинутый уровень). топик это строка, представляющая собой иерархический путь, вида foo/bar/baz. чтоб получать сообщения с определенными топиками, на них надо подписаться (subscribe). подписываться можно как на конкретный топик, так и по маске (foo/#/baz, foo/+, итд). отправка сообщения называется publish, при этом оно поступает на брокер, которые в свою очередь смотрит на топик и отправляет его всем кто в нем заинтересован.
QoS: можно указать как именно должно быть доставлено сообщение (не более одного раза каждому подписанту, не менее одного раза и ровно один раз)
retained: при наличии этого флага, брокер сохраняет сообщение у себя и отправляет его всем, кто позже подпишется на этот топик, этакий persistent storage.
last will: клиент может попросить брокер отправить сообщение когда соединение клиента с брокерам порвется.