После некоторого расследования, вот мои выводы о MQTT в Хаскеле:
Первая библиотека, которую я нашел, это http://hackage.haskell.org/package/mqtt-hs. Однако она содержит ошибки и больше не поддерживается.
Я сейчас использую http://hackage.haskell.org/package/net-mqtt,, который хорошо работает.
Я также понял, что мне не нужно создавать MQTT-сервер: мне просто нужно разработать клиент! Мой MQTT-клиент будет подписываться на стандартном MQTT-сервере (Mosquitto) и обрабатывать данные, полученные в моей базе данных.
Еще одна болевая точка MQTT - аутентификация / авторизация. Мой сервер использует Keycloak для контроля доступа, в то время как Mosquitto использует статический файл ACL. Я решил эту проблему, разработав авторизационный прокси-сервер для MQTT: прокси-сервер находится перед Mosquitto и фильтрует запросы на основе решений Keycloak.