diff --git a/src/emailnotification/docker-entrypoint.sh b/src/emailnotification/docker-entrypoint.sh
index 09dc0801753b82cf8d1e330ad00d339b6b9541b8..9e499df2a2095fb4dc62ba9e4ab62f1bfb0506b0 100644
--- a/src/emailnotification/docker-entrypoint.sh
+++ b/src/emailnotification/docker-entrypoint.sh
@@ -1,13 +1,9 @@
 #!/bin/sh
 # Abort on any error (including if wait-for-it fails).
 set -e
-# Wait for DB
-if [ -n "$DB_CONNECT" ]; then
-/go/src/app/wait-for-it.sh "$DB_CONNECT" -t 20
-fi
 # Wait for nats
 if [ -n "$NATS_CONNECT" ]; then
-/go/src/app/wait-for-it.sh "$DB_CONNECT" -t 20
+/go/src/app/wait-for-it.sh "$NATS_CONNECT" -t 20
 fi
 # Run the main container command.
 exec "$@"
\ No newline at end of file
diff --git a/src/emailnotification/main.go b/src/emailnotification/main.go
index 525b46e1049a73ca44dcac2e727ed9c94aff4a25..d7b96ae4e2fbec35adcb3a7a317520a6eb9aa942 100644
--- a/src/emailnotification/main.go
+++ b/src/emailnotification/main.go
@@ -4,6 +4,8 @@ import (
 	"fmt"
 	"log"
 	"os"
+	"sync"
+	"time"
 
 	"github.com/joho/godotenv"
 	"github.com/nats-io/nats.go"
@@ -11,76 +13,69 @@ import (
 
 func main() {
 	err := godotenv.Load(".env")
-
 	if err != nil {
-		log.Fatalf("Error loading .env file")
+		log.Fatalf("Error loading .env file: %v", err)
 	}
 	fmt.Println("aufgerufen")
 
-	//testemailcontent := model.EmialContenct{Name: "Yannick", Location: "Stuttgart"}
-	//receiver, body, subject := service.CreateEmail(testemailcontent, "confirmOrder")
-	//service.SendEmail(receiver, body, subject)
+	time.Sleep(2 * time.Second)
 
 	natsUrl := os.Getenv("NATS_URL")
-	if nc, err := nats.Connect(natsUrl); err != nil {
-		fmt.Println(err, nc)
+	nc, err := nats.Connect(natsUrl)
+	if err != nil {
+		log.Fatalf("Error connecting to NATS server: %v", err)
 	}
+	defer nc.Close()
+
+	var wg sync.WaitGroup
+
+	wg.Add(2)
 
 	go func() {
+		defer wg.Done()
 		fmt.Println("wird aufgerufen")
-		nc, err := nats.Connect(natsUrl)
+		orderSub, err := nc.SubscribeSync("Order")
 		if err != nil {
-			log.Fatal(err)
-		}
-		defer nc.Close()
-		sub, err := nc.SubscribeSync("Order")
-		if err != nil {
-			log.Fatal(err)
+			log.Fatalf("Error subscribing to 'Order': %v", err)
 		}
-
-		log.Println("Service hört auf die Subscription:", sub.Subject)
+		log.Println("Service hört auf die Subscription:", orderSub.Subject)
 
 		for {
-			msg, err := sub.NextMsg(0)
+			msg, err := orderSub.NextMsg(-1)
 			if err != nil {
-				log.Fatal(err)
+				log.Println("Error receiving message:", err)
+				continue
+			}
+			if msg != nil {
+				log.Printf("Nachricht erhalten: %s", msg.Data)
+				msg.Ack()
 			}
-			log.Printf("Nachricht erhalten: %s", msg.Data)
-
-			// Führe hier deine spezifische Logik aus, um die Nachricht zu verarbeiten
-
-			// Bestätige die Verarbeitung der Nachricht
-			msg.Ack()
 		}
 
 	}()
 
 	go func() {
-		nc, err := nats.Connect(natsUrl)
-		if err != nil {
-			log.Fatal(err)
-		}
-		defer nc.Close()
-		sub, err := nc.SubscribeSync("Cancelation")
+		defer wg.Done()
+		cancelationSub, err := nc.SubscribeSync("Cancelation")
 		if err != nil {
-			log.Fatal(err)
+			log.Fatalf("Error subscribing to 'Cancelation': %v", err)
 		}
-
-		log.Println("Service hört auf die Subscription:", sub.Subject)
+		log.Println("Service hört auf die Subscription:", cancelationSub.Subject)
 
 		for {
-			msg, err := sub.NextMsg(0)
+			msg, err := cancelationSub.NextMsg(-1)
 			if err != nil {
-				log.Fatal(err)
+				log.Println("Error receiving message:", err)
+				continue
+			}
+			if msg != nil {
+				log.Printf("Nachricht erhalten: %s", msg.Data)
+				msg.Ack()
 			}
-			log.Printf("Nachricht erhalten: %s", msg.Data)
-
-			// Führe hier deine spezifische Logik aus, um die Nachricht zu verarbeiten
-
-			// Bestätige die Verarbeitung der Nachricht
-			msg.Ack()
 		}
 
 	}()
+	wg.Wait()
 
+	fmt.Println("Alle Go-Routinen sind abgeschlossen. Hauptprogramm wird beendet.")
 }