I first installed MQTT as part of Teslamate, a project that records data from Tesla cars. The default setup includes an MQTT server which it uses to broadcast all the incoming data. The Hubitat integration for Teslamate gets the data from that MQTT server. I have it running on a Raspberry Pi under Docker.
Despite the rock-solid reliability of the MQTT container, which is only down for a few seconds a few times a year during Teslamate updates, I still generally prefer to use a direct connection between services rather than using MQTT as an intermediary for 1:1 connections. It just seems more reliable to have one less link in the chain between sender and receiver.
That said, there are a few cases where I rely on MQTT as the easiest/best solution to connect services.
First, for 1:many connections, MQTT makes sense. Rather than having something send the same message to two or three different recipients, it can be easier to to publish it to MQTT and have each service that needs it subscribe to get the message. As an example, when my Blue Iris (NVR/video surveillance) server sees someone at the front door, I need to send a notification to both Hubitat (to adjust lights) and Node Red (to play a sound via my Google Home speakers). I publish one message to MQTT and both the hub and Node Red receive it.
Another use case it that it can be simpler to send messages via MQTT than HTTP sometimes. Blue Iris it can accept admin commands like changing modes, sending PTZ commands to a camera, etc via either HTTP or MQTT. The problem with HTTP is that login security settings in Blue Iris can make authenticating that connection more difficult. There is no authentication needed for a command sent via MQTT, so I find it easier to do it that way.
Blue Iris can also publish alerts via MQTT or HTTP. When I need to get the alert into Hubitat I had been using HTTP calls, but I've started using MQTT. I learned my lesson when I upgraded to a new hub, which changed all my Maker API endpoints. With MQTT as the intermediary, as long as Blue Iris publishes to the same topic and Hubitat subscribes to the same topic, it doesn't matter if my hub IP or Maker API token changes, which can't be said for a direct HTTP call from Blue Iris to Maker API.
I also use MQTT to connect two Node Red instances. There are nodes that I needed for connecting my Eufy doorbell that I could only get to work on Windows, so I'm running a second Node Red instance under Windows. The problem is that I wanted to get the image that was received by the Windows Node Red node to the Raspberry Pi to save the file there. The easiest solution was to publish the image to MQTT from Windows and subscribe to the topic from the Raspberry Pi.
So I find MQTT a very useful tool in the home automation toolbox.