diff --git a/README.md b/README.md
index 13de0f6..f0fc74b 100644
--- a/README.md
+++ b/README.md
@@ -81,11 +81,28 @@ localhost:8000/api
localhost:8000/api/{location}
localhost:8000/api/{location}/trends
+### Messaging service
+To run the messaging service locally you can do the following:
+1. Make an account in HiveMQ and make a free cluster.
+2. In the .env file, fill in the connection values from HiveMQ under "Connection Details"
+3. Make a credential in HiveMQ under "Access Management" and fill these values in the .env file.
+4. Run the Fire risk API
+5. Go into terminal and run the publisher with command "python publisher.py"
+
+You can now go into the Web Client in HiveMQ
+
+
+Fill in with the credentials made earlier or autogenerate credentials in "Connections Settings". When the client is connected you can now use the interface to subscribe to different topics. The topics are "fireguard/updates/{location_name}" and the location has to be in the database to be able to subscribe to it. When it is published to a topic the message will show in the messages window.
+Here is an example of topics:
+
+
## Background
### Overall Architecture
+
+
This project is setup as containerized services orchastrated through tools such as Docker-Compose or Kubernetes. The following services are planned:
- API connectionpoint
- KeyCloak with database for persistent storage
@@ -109,9 +126,16 @@ This project is setup as containerized services orchastrated through tools such
### Databases
+The project uses a single MongoDB database (FireGuardProject) with a collection named location. Each document in the collection represents a location and its associated fire risk data. As well as coordinates and last time the fire risk for the location was calculated.
+
### Messaging System
+The publisher in this project is responsible for fetching fire risk data for various locations and publishing it to a specific MQTT topics using the HiveMQ Cloud broker.
+
+It connects to the HiveMQ Cloud broker via secure MQTT communication over TLS and publishes fire risk updates to dynamically generated topics based on the location names (e.g., fireguard/updates/{location_name}). Location data is retrieved from the database, and the fire risk information is obtained via HTTP requests to our REST API.
+
+To avoid redundant computations, the REST API checks wether fire risk data has already been calculated for the current day. If so, it returns the existing data from the database. As a result, it is natural that the publisher sends updates only once per day for each location.s
### Authentication and Authorization
diff --git a/images/Architecture.png b/images/Architecture.png
new file mode 100644
index 0000000..f0c698a
Binary files /dev/null and b/images/Architecture.png differ
diff --git a/images/ConnectHiveMQ.png b/images/ConnectHiveMQ.png
new file mode 100644
index 0000000..8cd23ac
Binary files /dev/null and b/images/ConnectHiveMQ.png differ
diff --git a/images/MongoDB.png b/images/MongoDB.png
new file mode 100644
index 0000000..665890e
Binary files /dev/null and b/images/MongoDB.png differ
diff --git a/images/subscribeHiveMQ.png b/images/subscribeHiveMQ.png
new file mode 100644
index 0000000..24a1113
Binary files /dev/null and b/images/subscribeHiveMQ.png differ