diff --git a/vorgang-manager-server/pom.xml b/vorgang-manager-server/pom.xml
index 2313bd9cc6d2144fbfcadb8377583cd232575c35..3ea617b8e49dda6882330c27eb11f24aef17683e 100644
--- a/vorgang-manager-server/pom.xml
+++ b/vorgang-manager-server/pom.xml
@@ -325,6 +325,11 @@
 			<artifactId>docker-java-api</artifactId>
 			<version>${docker-java.version}</version>
 		</dependency>
+		<dependency>
+			<groupId>org.awaitility</groupId>
+			<artifactId>awaitility</artifactId>
+			<scope>test</scope>
+		</dependency>
 
 		<!-- mongock -->
 		<dependency>
diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/PostfachMailITCase.java b/vorgang-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/PostfachMailITCase.java
index 8c3267d81c7c0e10c710ac1c7045b82163c74d2a..3bbec91322e52077a091aa576b1397025cb4fc8f 100644
--- a/vorgang-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/PostfachMailITCase.java
+++ b/vorgang-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/PostfachMailITCase.java
@@ -24,6 +24,7 @@
 package de.ozgcloud.nachrichten.postfach;
 
 import static org.assertj.core.api.Assertions.*;
+import static org.awaitility.Awaitility.*;
 import static org.mockito.ArgumentMatchers.*;
 import static org.mockito.Mockito.*;
 import static org.springframework.test.web.client.match.MockRestRequestMatchers.*;
@@ -31,7 +32,9 @@ import static org.springframework.test.web.client.response.MockRestResponseCreat
 
 import java.time.ZonedDateTime;
 import java.time.temporal.ChronoUnit;
+import java.util.Collection;
 import java.util.List;
+import java.util.concurrent.TimeUnit;
 
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Nested;
@@ -139,9 +142,9 @@ class PostfachMailITCase {
 				mockServerSendSuccess();
 
 				callGrpcEndpoint();
-				var mails = callGrpcListEndpoint();
+				var mails = await().atMost(5, TimeUnit.SECONDS)
+						.until(PostfachMailITCase.this::callGrpcListEndpoint, PostfachMailITCase.this::hasAtLeastOneElement);
 
-				assertThat(mails).hasSize(1);
 				assertThat(mails.get(0).getCreatedAt()).isNotNull();
 				assertThat(mails.get(0).getDirection()).isEqualTo(GrpcDirection.OUT);
 				assertThat(mails.get(0).getSentAt()).isNotNull();
@@ -153,17 +156,24 @@ class PostfachMailITCase {
 		@Nested
 		class TestSendingFailed {
 
+			@BeforeEach
+			void init() {
+				mongoOperations.dropCollection(VorgangAttachedItem.COLLECTION_NAME);
+			}
+
 			@Test
 			void shouldMarkFailed() {
 				mockServerSendFailed();
 
 				callGrpcEndpoint();
-				var mails = callGrpcListEndpoint();
 
-				assertThat(mails).hasSize(1);
-				assertThat(mails.get(0).getSentAt()).isNotNull();
-				assertThat(ZonedDateTime.parse(mails.get(0).getSentAt())).isCloseTo(ZonedDateTime.now(), within(2, ChronoUnit.SECONDS));
-				assertThat(mails.get(0).getSentSuccessful()).isFalse();
+				await().atMost(5, TimeUnit.SECONDS).untilAsserted(() -> {
+					assertThat(callGrpcListEndpoint()).hasSize(1).first().satisfies(mail -> {
+						assertThat(mail.getSentAt()).isNotNull();
+						assertThat(ZonedDateTime.parse(mail.getSentAt())).isCloseTo(ZonedDateTime.now(), within(2, ChronoUnit.SECONDS));
+						assertThat(mail.getSentSuccessful()).isFalse();
+					});
+				});
 			}
 
 			@Test
@@ -172,13 +182,14 @@ class PostfachMailITCase {
 				mockServerSendSuccess();
 				callGrpcEndpoint();
 
-				var mails = callGrpcListEndpoint();
+				var mails = await().atMost(5, TimeUnit.SECONDS)
+						.until(PostfachMailITCase.this::callGrpcListEndpoint, PostfachMailITCase.this::hasAtLeastOneElement);
 				var mailId = mails.get(0).getId();
 
 				callResendGrpcEndpoint(mailId);
-
-				mails = callGrpcListEndpoint();
-				assertThat(mails.get(0).getSentSuccessful()).isTrue();
+				await().atMost(5, TimeUnit.SECONDS).untilAsserted(() ->
+						assertThat(callGrpcListEndpoint()).hasSize(1).first().extracting(GrpcPostfachMail::getSentSuccessful).isEqualTo(true)
+				);
 			}
 
 			@Test
@@ -187,7 +198,8 @@ class PostfachMailITCase {
 				mockServerSendFailed();
 
 				callGrpcEndpoint();
-				var mails = callGrpcListEndpoint();
+				var mails = await().atMost(5, TimeUnit.SECONDS)
+						.until(PostfachMailITCase.this::callGrpcListEndpoint, PostfachMailITCase.this::hasAtLeastOneElement);
 				var mailId = mails.get(0).getId();
 
 				callResendGrpcEndpoint(mailId);
@@ -301,4 +313,7 @@ class PostfachMailITCase {
 		return responseCaptor.getValue().getMailsList();
 	}
 
+	private boolean hasAtLeastOneElement(Collection<GrpcPostfachMail> mails) {
+		return !mails.isEmpty();
+	}
 }
diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/processor/ProcessorITCase.java b/vorgang-manager-server/src/test/java/de/ozgcloud/processor/ProcessorITCase.java
index 8ccc7c5f6b701a43d1784e264221a08ff7a117a4..5de6cb8db43331157cd66b2f84a1f00b859ddba1 100644
--- a/vorgang-manager-server/src/test/java/de/ozgcloud/processor/ProcessorITCase.java
+++ b/vorgang-manager-server/src/test/java/de/ozgcloud/processor/ProcessorITCase.java
@@ -1,12 +1,14 @@
 package de.ozgcloud.processor;
 
 import static org.assertj.core.api.Assertions.*;
+import static org.awaitility.Awaitility.*;
 import static org.mockito.ArgumentMatchers.*;
 import static org.mockito.Mockito.*;
 
 import java.time.ZonedDateTime;
 import java.util.Map;
 import java.util.Optional;
+import java.util.concurrent.TimeUnit;
 
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
@@ -83,8 +85,10 @@ class ProcessorITCase {
 	void triggerProcessorOnNewVorgang() {
 		publisher.publishEvent(new VorgangCreatedEvent(VorgangTestFactory.ID));
 
-		verify(processorVorgangService, timeout(2000)).getVorgang(any());
-		verify(commandService).createCommand(requestCaptor.capture());
+		await().atMost(5, TimeUnit.SECONDS).untilAsserted(() -> {
+			verify(processorVorgangService).getVorgang(any());
+			verify(commandService).createCommand(requestCaptor.capture());
+		});
 
 		var request = requestCaptor.getValue();
 		@SuppressWarnings("unchecked")
diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/attached_item/VorgangAttachedItemEventListenerITCase.java b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/attached_item/VorgangAttachedItemEventListenerITCase.java
index 3e5f8f24435015755d364aa2ecfe3feb88d53519..248ebc6edb9c5dcc677b60457a71151448a67089 100644
--- a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/attached_item/VorgangAttachedItemEventListenerITCase.java
+++ b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/attached_item/VorgangAttachedItemEventListenerITCase.java
@@ -23,10 +23,12 @@
  */
 package de.ozgcloud.vorgang.attached_item;
 
+import static org.awaitility.Awaitility.*;
 import static org.mockito.ArgumentMatchers.*;
 import static org.mockito.Mockito.*;
 
 import java.util.Map;
+import java.util.concurrent.TimeUnit;
 
 import org.junit.jupiter.api.Nested;
 import org.junit.jupiter.api.Test;
@@ -70,7 +72,7 @@ class VorgangAttachedItemEventListenerITCase {
 
 			publisher.publishEvent(event);
 
-			verify(listener).createItem(any());
+			await().atMost(5, TimeUnit.SECONDS).untilAsserted(() -> verify(listener).createItem(any()));
 		}
 	}
 
@@ -84,7 +86,7 @@ class VorgangAttachedItemEventListenerITCase {
 
 			publisher.publishEvent(event);
 
-			verify(listener).updateItem(any());
+			await().atMost(5, TimeUnit.SECONDS).untilAsserted(() -> verify(listener).updateItem(any()));
 		}
 	}
 
@@ -100,7 +102,7 @@ class VorgangAttachedItemEventListenerITCase {
 
 			publisher.publishEvent(event);
 
-			verify(listener).patchItem(any());
+			await().atMost(5, TimeUnit.SECONDS).untilAsserted(() -> verify(listener).patchItem(any()));
 		}
 	}
 
@@ -114,7 +116,7 @@ class VorgangAttachedItemEventListenerITCase {
 
 			publisher.publishEvent(event);
 
-			verify(listener).deleteItem(any());
+			await().atMost(5, TimeUnit.SECONDS).untilAsserted(() -> verify(listener).deleteItem(any()));
 		}
 	}
 
@@ -125,7 +127,7 @@ class VorgangAttachedItemEventListenerITCase {
 		void shouldCallListener() {
 			publisher.publishEvent(VorgangDeletedEventTestFactory.create());
 
-			verify(listener).onVorgangDeleted(any());
+			await().atMost(5, TimeUnit.SECONDS).untilAsserted(() -> verify(listener).onVorgangDeleted(any()));
 		}
 	}
 
@@ -139,7 +141,8 @@ class VorgangAttachedItemEventListenerITCase {
 
 			publisher.publishEvent(event);
 
-			verify(service).unmarkAsDeleteByIdAndVersion(CommandTestFactory.RELATION_ID, CommandTestFactory.RELATION_VERSION);
+			await().atMost(5, TimeUnit.SECONDS).untilAsserted(
+					() -> verify(service).unmarkAsDeleteByIdAndVersion(CommandTestFactory.RELATION_ID, CommandTestFactory.RELATION_VERSION));
 		}
 
 	}
diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/attached_item/VorgangAttachedItemITCase.java b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/attached_item/VorgangAttachedItemITCase.java
index 4ba2f9714b9441f9d894588df60087c91fb68857..79ce07e580ab83de2d02838ad6837fc009116650 100644
--- a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/attached_item/VorgangAttachedItemITCase.java
+++ b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/attached_item/VorgangAttachedItemITCase.java
@@ -24,11 +24,13 @@
 package de.ozgcloud.vorgang.attached_item;
 
 import static org.assertj.core.api.Assertions.*;
+import static org.awaitility.Awaitility.*;
 import static org.junit.jupiter.api.Assertions.*;
 import static org.mockito.Mockito.*;
 
 import java.util.HashMap;
 import java.util.Optional;
+import java.util.concurrent.TimeUnit;
 
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.DisplayName;
@@ -88,13 +90,15 @@ class VorgangAttachedItemITCase {
 		@Test
 		void shouldPersistInDatabase() {
 			publisher.publishEvent(event);
-
-			var loaded = mongoOperations.findAll(VorgangAttachedItem.class);
-
-			assertThat(loaded).hasSize(1);
-			assertThat(loaded.get(0)).usingRecursiveComparison().ignoringFields("id", "version").isEqualTo(VorgangAttachedItemTestFactory.create());
-			assertThat(loaded.get(0).getId()).isNotNull();
-			assertThat(loaded.get(0).getVersion()).isEqualTo(1L);
+			await().atMost(5, TimeUnit.SECONDS).untilAsserted(() -> {
+				var loadedItems = mongoOperations.findAll(VorgangAttachedItem.class);
+
+				assertThat(loadedItems).hasSize(1).first().satisfies(item -> {
+					assertThat(item).usingRecursiveComparison().ignoringFields("id", "version").isEqualTo(VorgangAttachedItemTestFactory.create());
+					assertThat(item.getId()).isNotNull();
+					assertThat(item.getVersion()).isEqualTo(1L);
+				});
+			});
 		}
 	}
 
@@ -132,11 +136,14 @@ class VorgangAttachedItemITCase {
 		void shouldIncrementVersion() {
 			publisher.publishEvent(event);
 
-			var loaded = mongoOperations.findAll(VorgangAttachedItem.class);
+			await().atMost(5, TimeUnit.SECONDS).untilAsserted(() -> {
+				var loaded = mongoOperations.findAll(VorgangAttachedItem.class);
 
-			assertThat(loaded).hasSize(1);
-			assertThat(loaded.get(0)).usingRecursiveComparison().ignoringFields("id", "version").isEqualTo(VorgangAttachedItemTestFactory.create());
-			assertThat(loaded.get(0).getVersion()).isEqualTo(2L);
+				assertThat(loaded).hasSize(1).first().satisfies(item -> {
+					assertThat(item).usingRecursiveComparison().ignoringFields("id", "version").isEqualTo(VorgangAttachedItemTestFactory.create());
+					assertThat(item.getVersion()).isEqualTo(2L);
+				});
+			});
 		}
 	}
 
diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/status/StatusEventListenerITCase.java b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/status/StatusEventListenerITCase.java
index 3c42d7fc8618ac79b402e238139ebb24befb0d9a..bb751bec059f5f0bb76e50af39caa5d755a928fe 100644
--- a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/status/StatusEventListenerITCase.java
+++ b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/status/StatusEventListenerITCase.java
@@ -1,9 +1,11 @@
 package de.ozgcloud.vorgang.status;
 
+import static org.awaitility.Awaitility.*;
 import static org.mockito.ArgumentMatchers.*;
 import static org.mockito.Mockito.*;
 
 import java.util.Optional;
+import java.util.concurrent.TimeUnit;
 
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.DisplayName;
@@ -54,56 +56,56 @@ class StatusEventListenerITCase {
 		void shouldCreateStatusChangeEventForVorgangAnnehmen() {
 			publishCommandCreatedEvent(Order.VORGANG_ANNEHMEN);
 
-			verify(statusService).annehmen(any());
+			await().atMost(5, TimeUnit.SECONDS).untilAsserted(() -> verify(statusService).annehmen(any()));
 		}
 
 		@Test
 		void shouldCreateStatusChangeEventForVorgangAbschliessen() {
 			publishCommandCreatedEvent(Order.VORGANG_ABSCHLIESSEN);
 
-			verify(statusService).abschliessen(any());
+			await().atMost(5, TimeUnit.SECONDS).untilAsserted(() -> verify(statusService).abschliessen(any()));
 		}
 
 		@Test
 		void shouldCreateStatusChangeEventForVorgangBearbeiten() {
 			publishCommandCreatedEvent(Order.VORGANG_BEARBEITEN);
 
-			verify(statusService).bearbeiten(any());
+			await().atMost(5, TimeUnit.SECONDS).untilAsserted(() -> verify(statusService).bearbeiten(any()));
 		}
 
 		@Test
 		void shouldCreateStatusChangeEventForVorgangBescheiden() {
 			publishCommandCreatedEvent(Order.VORGANG_BESCHEIDEN);
 
-			verify(statusService).bescheiden(any());
+			await().atMost(5, TimeUnit.SECONDS).untilAsserted(() -> verify(statusService).bescheiden(any()));
 		}
 
 		@Test
 		void shouldCreateStatusChangeEventForVorgangVerwerfen() {
 			publishCommandCreatedEvent(Order.VORGANG_VERWERFEN);
 
-			verify(statusService).verwerfen(any());
+			await().atMost(5, TimeUnit.SECONDS).untilAsserted(() -> verify(statusService).verwerfen(any()));
 		}
 
 		@Test
 		void shouldCreateStatusChangeEventForVorgangWiedereroeffnen() {
 			publishCommandCreatedEvent(Order.VORGANG_WIEDEREROEFFNEN);
 
-			verify(statusService).wiedereroeffnen(any());
+			await().atMost(5, TimeUnit.SECONDS).untilAsserted(() -> verify(statusService).wiedereroeffnen(any()));
 		}
 
 		@Test
 		void shouldCreateStatusChangeEventForVorgangZurueckholen() {
 			publishCommandCreatedEvent(Order.VORGANG_ZURUECKHOLEN);
 
-			verify(statusService).setStatusNeu(any());
+			await().atMost(5, TimeUnit.SECONDS).untilAsserted(() -> verify(statusService).setStatusNeu(any()));
 		}
 
 		@Test
 		void shouldCreateStatusChangeEventForVorgangZurueckstellen() {
 			publishCommandCreatedEvent(Order.VORGANG_ZURUECKSTELLEN);
 
-			verify(statusService).annehmen(any());
+			await().atMost(5, TimeUnit.SECONDS).untilAsserted(() -> verify(statusService).annehmen(any()));
 		}
 
 		@Nested
@@ -112,7 +114,7 @@ class StatusEventListenerITCase {
 			void shouldCallService() {
 				publishCommandCreatedEvent(Order.VORGANG_ZUM_LOESCHEN_MARKIEREN);
 
-				verify(statusService).zumLoeschenMarkieren(any());
+				await().atMost(5, TimeUnit.SECONDS).untilAsserted(() -> verify(statusService).zumLoeschenMarkieren(any()));
 			}
 		}
 
@@ -149,7 +151,7 @@ class StatusEventListenerITCase {
 
 			publisher.publishEvent(new RevokeCommandEvent(command));
 
-			verify(statusService).revokeStatusChange(any(PersistedCommand.class));
+			await().atMost(5, TimeUnit.SECONDS).untilAsserted(() -> verify(statusService).revokeStatusChange(any(PersistedCommand.class)));
 		}
 	}
 }
diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/redirect/ForwardVorgangITCase.java b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/redirect/ForwardVorgangITCase.java
index 11b302357b277b02742b8d80c48cdf4621f40340..51637df98ba492f515656a27b27888a2dd15f3e0 100644
--- a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/redirect/ForwardVorgangITCase.java
+++ b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/redirect/ForwardVorgangITCase.java
@@ -24,10 +24,12 @@
 package de.ozgcloud.vorgang.vorgang.redirect;
 
 import static org.assertj.core.api.Assertions.*;
+import static org.awaitility.Awaitility.*;
 import static org.mockito.ArgumentMatchers.*;
 import static org.mockito.Mockito.*;
 
 import java.util.concurrent.ExecutionException;
+import java.util.concurrent.TimeUnit;
 import java.util.concurrent.TimeoutException;
 
 import org.bson.types.ObjectId;
@@ -138,10 +140,10 @@ class ForwardVorgangITCase {
 		void shouldHaveCommandWithFINISHEDState() {
 			callServiceCreateCommand();
 
-			var commands = mongoOperations.findAll(Command.class);
-			assertThat(commands).hasSize(1);
-			var redirectCommand = commands.get(0);
-			assertThat(redirectCommand.getStatus()).isEqualTo(CommandStatus.FINISHED);
+			await().atMost(5, TimeUnit.SECONDS).untilAsserted(() -> {
+				var commands = mongoOperations.findAll(Command.class);
+				assertThat(commands).hasSize(1).first().extracting(Command::getStatus).isEqualTo(CommandStatus.FINISHED);
+			});
 		}
 
 		// TODO Forwarding status
@@ -162,28 +164,34 @@ class ForwardVorgangITCase {
 		void forwardCommandShouldBeWithError() {
 			callServiceCreateCommand();
 
-			var commands = mongoOperations.findAll(PersistedCommand.class);
-			assertThat(commands).hasSize(1);
-			var redirectCommand = commands.get(0);
-			assertThat(redirectCommand.getStatus()).isEqualTo(CommandStatus.ERROR);
-			assertThat(redirectCommand.getErrorMessage()).isEqualTo(MailSendErrorEventTestFactory.ERROR_MSG);
+			await().atMost(5, TimeUnit.SECONDS).untilAsserted(() -> {
+				var commands = mongoOperations.findAll(PersistedCommand.class);
+				assertThat(commands).hasSize(1).first().satisfies(redirectCommand -> {
+					assertThat(redirectCommand.getStatus()).isEqualTo(CommandStatus.ERROR);
+					assertThat(redirectCommand.getErrorMessage()).isEqualTo(MailSendErrorEventTestFactory.ERROR_MSG);
+				});
+			});
 		}
 
 		@Test
 		void vorgangShouldHaveStatusIN_BEARBEITUNG() {
 			callServiceCreateCommand();
 
-			var loaded = mongoOperations.findById(VorgangTestFactory.ID, Vorgang.class);
-			assertThat(loaded.getStatus()).isEqualTo(Status.IN_BEARBEITUNG);
+			await().atMost(5, TimeUnit.SECONDS).untilAsserted(() -> {
+				var loaded = mongoOperations.findById(VorgangTestFactory.ID, Vorgang.class);
+				assertThat(loaded.getStatus()).isEqualTo(Status.IN_BEARBEITUNG);
+			});
 		}
 
 		@Test
 		void forwardingShouldHaveStatusSEND_ERROR() {
 			callServiceCreateCommand();
 
-			var vorgang = mongoOperations.findById(VorgangTestFactory.ID, Vorgang.class);
-			assertThat(vorgang.getForwardings()).hasSize(1);
-			assertThat(vorgang.getForwardings().get(0).getStatus()).isEqualTo(Forwarding.Status.SEND_ERROR);
+			await().atMost(5, TimeUnit.SECONDS).untilAsserted(() -> {
+				var vorgang = mongoOperations.findById(VorgangTestFactory.ID, Vorgang.class);
+				assertThat(vorgang.getForwardings()).hasSize(1);
+				assertThat(vorgang.getForwardings().get(0).getStatus()).isEqualTo(Forwarding.Status.SEND_ERROR);
+			});
 		}
 
 	}
diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/redirect/ForwardingEventListenerITCase.java b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/redirect/ForwardingEventListenerITCase.java
index 4fc182bdb6a5387ee2b3b626c98c921700942ef1..735ee575b32e8cc21ab6ea65a8a9c6616757c79c 100644
--- a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/redirect/ForwardingEventListenerITCase.java
+++ b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/redirect/ForwardingEventListenerITCase.java
@@ -23,9 +23,12 @@
  */
 package de.ozgcloud.vorgang.vorgang.redirect;
 
+import static org.awaitility.Awaitility.*;
 import static org.mockito.ArgumentMatchers.*;
 import static org.mockito.Mockito.*;
 
+import java.util.concurrent.TimeUnit;
+
 import org.junit.jupiter.api.Nested;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.params.ParameterizedTest;
@@ -66,7 +69,7 @@ class ForwardingEventListenerITCase {
 
 			publisher.publishEvent(CommandCreatedEventTestFactory.create(command));
 
-			verify(service).forwardByCommand(command);
+			await().atMost(5, TimeUnit.SECONDS).untilAsserted(() -> verify(service).forwardByCommand(command));
 		}
 
 	}
@@ -79,7 +82,7 @@ class ForwardingEventListenerITCase {
 
 			publisher.publishEvent(MailSentEventTestFactory.create(forwarding));
 
-			verify(service).onRedirectMailSent(forwarding);
+			await().atMost(5, TimeUnit.SECONDS).untilAsserted(() -> verify(service).onRedirectMailSent(forwarding));
 		}
 
 		@ParameterizedTest
@@ -102,7 +105,7 @@ class ForwardingEventListenerITCase {
 
 			publisher.publishEvent(CommandCreatedEventTestFactory.create(command));
 
-			verify(service).markAsSuccessfull(command);
+			await().atMost(5, TimeUnit.SECONDS).untilAsserted(() -> verify(service).markAsSuccessfull(command));
 		}
 	}