diff --git a/.env.example b/.env.example
index 7a9c9589fdd35ed3e88c73d272ee2a6065b9151d..85753a076c015a66c755b4be6dd1e119b8636b6f 100644
--- a/.env.example
+++ b/.env.example
@@ -74,6 +74,8 @@ MOSQUITTO_PORT_SECURE=127.0.0.1:8883
 MQTT_USER=mqtt
 # Change this!
 MQTT_PASSWORD=mqtt
+MQTT_QOS=2
+MQTT_CLEAN_SESSION=False
 MQTT_BROKER_LOG_SIZE=100K
 MQTT_BROKER_FILE_COUNT=10
 MQTT_BROKER_HEALTHCHECK_INTERVAL=10s
diff --git a/data/mosquitto/data/.gitkeep b/data/mosquitto/data/.gitkeep
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/docker-compose.yml b/docker-compose.yml
index 3f9210d1683c783927a662be8f6a25275cf1715c..1df88ed1b4b3bf02af9bb4745a9acea8643e0e6f 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -146,7 +146,7 @@ services:
       MINIO_NOTIFY_MQTT_USERNAME_LOCAL_BROKER: "${MQTT_USER}"
       MINIO_NOTIFY_MQTT_PASSWORD_LOCAL_BROKER: "${MQTT_PASSWORD}"
       MINIO_NOTIFY_MQTT_KEEP_ALIVE_INTERVAL_LOCAL_BROKER: "60s"
-      #      MINIO_NOTIFY_MQTT_QOS_LOCAL_BROKER: "<string>"
+      MINIO_NOTIFY_MQTT_QOS_LOCAL_BROKER: "${MQTT_QOS}"
       MINIO_NOTIFY_MQTT_RECONNECT_INTERVAL_LOCAL_BROKER: "60s"
       #      MINIO_NOTIFY_MQTT_QUEUE_DIR_LOCAL_BROKER: "<string>"
       #      MINIO_NOTIFY_MQTT_QUEUE_LIMIT_LOCAL_BROKER: "<string>"
@@ -228,6 +228,7 @@ services:
       - "${MOSQUITTO_CONFIG}:/etc/mosquitto/config/mosquitto.conf:ro"
       - "${MOSQUITTO_TLS_CONFIG}:/etc/mosquitto/config/tls/mosquitto.tls.conf:ro"
       - "./data/mosquitto/auth:/mosquitto-auth/"
+      - "./data/mosquitto/data:/mosquitto-data/"
       - "${MOSQUITTO_TLS_CERT_PATH}:/mosquitto/config/certs/server.crt:ro"
       - "${MOSQUITTO_TLS_KEY_PATH}:/mosquitto/config/certs/server.key:ro"
       - "${MOSQUITTO_TLS_CA_PATH}:/mosquitto/config/certs/ca.crt:ro"
@@ -459,6 +460,9 @@ services:
       MQTT_BROKER: "mqtt-broker:1883"
       MQTT_USER: "${MQTT_USER}"
       MQTT_PASSWORD: "${MQTT_PASSWORD}"
+      MQTT_CLIENT_ID: "object-storage-setup"
+      MQTT_CLEAN_SESSION: "${MQTT_CLEAN_SESSION}"
+      MQTT_QOS: "${MQTT_QOS}"
       MINIO_SECURE: "${MINIO_SECURE}"
       MINIO_URL: "${MINIO_HOST}"
       MINIO_ACCESS_KEY: "${MINIO_ROOT_USER}"
@@ -495,6 +499,9 @@ services:
       MQTT_BROKER: "mqtt-broker:1883"
       MQTT_USER: "${MQTT_USER}"
       MQTT_PASSWORD: "${MQTT_PASSWORD}"
+      MQTT_CLIENT_ID: "db-setup"
+      MQTT_CLEAN_SESSION: "${MQTT_CLEAN_SESSION}"
+      MQTT_QOS: "${MQTT_QOS}"
       DATABASE_URL: "postgresql://\
         ${CREATEDB_POSTGRES_USER}:\
         ${CREATEDB_POSTGRES_PASSWORD}@\
@@ -522,6 +529,9 @@ services:
       MQTT_BROKER: "mqtt-broker:1883"
       MQTT_USER: "${MQTT_USER}"
       MQTT_PASSWORD: "${MQTT_PASSWORD}"
+      MQTT_CLIENT_ID: "frost-setup"
+      MQTT_CLEAN_SESSION: "${MQTT_CLEAN_SESSION}"
+      MQTT_QOS: "${MQTT_QOS}"
       TOMCAT_PROXY_URL: "${TOMCAT_PROXY_URL}"
     command:
       - "create-frost-instance"
@@ -541,6 +551,9 @@ services:
       MQTT_BROKER: "mqtt-broker:1883"
       MQTT_USER: "${MQTT_USER}"
       MQTT_PASSWORD: "${MQTT_PASSWORD}"
+      MQTT_CLIENT_ID: "mqtt-user-creation"
+      MQTT_CLEAN_SESSION: "${MQTT_CLEAN_SESSION}"
+      MQTT_QOS: "${MQTT_QOS}"
       DATABASE_URL: "postgresql://\
         ${CREATEDB_POSTGRES_USER}:\
         ${CREATEDB_POSTGRES_PASSWORD}@\
@@ -564,6 +577,9 @@ services:
       MQTT_BROKER: "mqtt-broker:1883"
       MQTT_USER: "${MQTT_USER}"
       MQTT_PASSWORD: "${MQTT_PASSWORD}"
+      MQTT_CLIENT_ID: "grafana-dashboard"
+      MQTT_CLEAN_SESSION: "${MQTT_CLEAN_SESSION}"
+      MQTT_QOS: "${MQTT_QOS}"
       GRAFANA_URL: "${GRAFANA_URL}"
       GRAFANA_USER: "${GRAFANA_USER}"
       GRAFANA_PASSWORD: "${GRAFANA_PASSWORD}"
@@ -592,6 +608,9 @@ services:
       MQTT_BROKER: "mqtt-broker:1883"
       MQTT_USER: "${MQTT_USER}"
       MQTT_PASSWORD: "${MQTT_PASSWORD}"
+      MQTT_CLIENT_ID: "file-ingest"
+      MQTT_CLEAN_SESSION: "${MQTT_CLEAN_SESSION}"
+      MQTT_QOS: "${MQTT_QOS}"
       MINIO_SECURE: "${MINIO_SECURE}"
       MINIO_URL: "${MINIO_HOST}"
       MINIO_ACCESS_KEY: "${MINIO_ROOT_USER}"
@@ -628,6 +647,9 @@ services:
       MQTT_BROKER: "mqtt-broker:1883"
       MQTT_USER: "${MQTT_USER}"
       MQTT_PASSWORD: "${MQTT_PASSWORD}"
+      MQTT_CLIENT_ID: "run-qaqc"
+      MQTT_CLEAN_SESSION: "${MQTT_CLEAN_SESSION}"
+      MQTT_QOS: "${MQTT_QOS}"
       SCHEDULER: "${SCHEDULER}"
       SCHED_HOST: "${SCHED_HOST}"
       SCHED_MQTT_BROKER: "${SCHED_MQTT_BROKER}"
@@ -655,6 +677,9 @@ services:
       MQTT_BROKER: "mqtt-broker:1883"
       MQTT_USER: "${MQTT_INGEST_USER}"
       MQTT_PASSWORD: "${MQTT_INGEST_PASSWORD}"
+      MQTT_CLIENT_ID: "mqtt-ingest"
+      MQTT_CLEAN_SESSION: "${MQTT_CLEAN_SESSION}"
+      MQTT_QOS: "${MQTT_QOS}"
     command:
       - parse-mqtt-data
       - --target-uri
@@ -683,6 +708,9 @@ services:
       MQTT_BROKER: "mqtt-broker:1883"
       MQTT_USER: "${MQTT_USER}"
       MQTT_PASSWORD: "${MQTT_PASSWORD}"
+      MQTT_CLIENT_ID: "grafana-user-orgs"
+      MQTT_CLEAN_SESSION: "${MQTT_CLEAN_SESSION}"
+      MQTT_QOS: "${MQTT_QOS}"
       GRAFANA_URL: "${GRAFANA_URL}"
       GRAFANA_USER: "${GRAFANA_USER}"
       GRAFANA_PASSWORD: "${GRAFANA_PASSWORD}"
@@ -706,6 +734,8 @@ services:
       MQTT_BROKER: "mqtt-broker:1883"
       MQTT_USER: "${MQTT_USER}"
       MQTT_PASSWORD: "${MQTT_PASSWORD}"
+      MQTT_CLIENT_ID: "basic-demo-scheduler"
+      MQTT_QOS: "${MQTT_QOS}"
     command:
       - "--verbose"
 
diff --git a/mosquitto/mosquitto.conf b/mosquitto/mosquitto.conf
index cfc13c350d0c00363adbc2b858c777a8b50c3e8b..79b1dba7073472e0ad1bb68365a1841451b77f80 100644
--- a/mosquitto/mosquitto.conf
+++ b/mosquitto/mosquitto.conf
@@ -47,11 +47,11 @@ memory_limit 8589934592 # 8 GB
 max_keepalive 0
 # enables message storage on disk, when restarting the broker
 persistence true
-#autosave_interval
+autosave_interval 10
 #autosave_on_changes
-#persistence_file                    #defaults to mosquitto.db
-#persistence_location                #default is current directory
-persistent_client_expiration 14d     #removal of clients if not connected for a long time
+persistence_file mosquitto.db
+persistence_location /mosquitto-data/
+persistent_client_expiration 14d
 
 #use this to enable tls config
 include_dir /var/lib/mosquitto/tls/