You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by bt...@apache.org on 2019/03/20 02:01:44 UTC

[james-project] 04/09: MAILBOX-373 Refactor EventDeadLettersRoutes with new dead letter APIs

This is an automated email from the ASF dual-hosted git repository.

btellier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit 81c293db1f48bbf4335b0184ec5d5a91f4c55a5d
Author: datph <dp...@linagora.com>
AuthorDate: Wed Mar 13 17:33:51 2019 +0700

    MAILBOX-373 Refactor EventDeadLettersRoutes with new dead letter APIs
---
 .../webadmin/routes/EventDeadLettersRoutes.java    |  61 ++++----
 .../service/EventDeadLettersRedeliverService.java  |   6 +-
 .../service/EventDeadLettersRedeliverTask.java     |  12 +-
 .../webadmin/service/EventDeadLettersService.java  |  18 +--
 .../james/webadmin/service/EventRetriever.java     |  39 +++--
 .../routes/EventDeadLettersRoutesTest.java         | 160 ++++++++++++---------
 src/site/markdown/server/manage-webadmin.md        |  12 +-
 7 files changed, 166 insertions(+), 142 deletions(-)

diff --git a/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/routes/EventDeadLettersRoutes.java b/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/routes/EventDeadLettersRoutes.java
index fb8949b..36f783f 100644
--- a/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/routes/EventDeadLettersRoutes.java
+++ b/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/routes/EventDeadLettersRoutes.java
@@ -31,6 +31,7 @@ import javax.ws.rs.Produces;
 
 import org.apache.james.event.json.EventSerializer;
 import org.apache.james.mailbox.events.Event;
+import org.apache.james.mailbox.events.EventDeadLetters;
 import org.apache.james.mailbox.events.Group;
 import org.apache.james.task.Task;
 import org.apache.james.task.TaskId;
@@ -60,7 +61,7 @@ import spark.Service;
 public class EventDeadLettersRoutes implements Routes {
     private static final String BASE_PATH = "/events/deadLetter";
     private static final String GROUP_PARAM = ":group";
-    private static final String EVENT_ID_PARAM = ":eventId";
+    private static final String INSERTION_ID_PARAMETER = ":insertionId";
 
     private static final String INTERNAL_SERVER_ERROR = "Internal server error - Something went bad on the server side.";
 
@@ -89,9 +90,9 @@ public class EventDeadLettersRoutes implements Routes {
         service.get(BASE_PATH + "/groups", this::listGroups, jsonTransformer);
         service.get(BASE_PATH + "/groups/" + GROUP_PARAM, this::listFailedEvents, jsonTransformer);
         service.post(BASE_PATH + "/groups/" + GROUP_PARAM, this::performActionOnGroupEvents, jsonTransformer);
-        service.get(BASE_PATH + "/groups/" + GROUP_PARAM + "/" + EVENT_ID_PARAM, this::getEventDetails);
-        service.delete(BASE_PATH + "/groups/" + GROUP_PARAM + "/" + EVENT_ID_PARAM, this::deleteEvent);
-        service.post(BASE_PATH + "/groups/" + GROUP_PARAM + "/" + EVENT_ID_PARAM, this::performActionOnSingleEvent, jsonTransformer);
+        service.get(BASE_PATH + "/groups/" + GROUP_PARAM + "/" + INSERTION_ID_PARAMETER, this::getEventDetails);
+        service.delete(BASE_PATH + "/groups/" + GROUP_PARAM + "/" + INSERTION_ID_PARAMETER, this::deleteEvent);
+        service.post(BASE_PATH + "/groups/" + GROUP_PARAM + "/" + INSERTION_ID_PARAMETER, this::performActionOnSingleEvent, jsonTransformer);
     }
 
     @POST
@@ -147,13 +148,13 @@ public class EventDeadLettersRoutes implements Routes {
             value = "Compulsory. Needs to be a valid group name")
     })
     @ApiResponses(value = {
-        @ApiResponse(code = HttpStatus.OK_200, message = "OK - list of failed eventIds for a given group", response = List.class),
+        @ApiResponse(code = HttpStatus.OK_200, message = "OK - list of insertionIds of failed event for a given group", response = List.class),
         @ApiResponse(code = HttpStatus.BAD_REQUEST_400, message = "Invalid group name"),
         @ApiResponse(code = HttpStatus.INTERNAL_SERVER_ERROR_500, message = INTERNAL_SERVER_ERROR)
     })
     private Iterable<String> listFailedEvents(Request request, Response response) {
         Group group = parseGroup(request);
-        return eventDeadLettersService.listGroupsEventIdsAsStrings(group);
+        return eventDeadLettersService.listGroupsInsertionIdsAsStrings(group);
     }
 
     @POST
@@ -194,7 +195,7 @@ public class EventDeadLettersRoutes implements Routes {
     }
 
     @GET
-    @Path("/groups/" + GROUP_PARAM + "/" + EVENT_ID_PARAM)
+    @Path("/groups/" + GROUP_PARAM + "/" + INSERTION_ID_PARAMETER)
     @ApiOperation(value = "Returns an event detail")
     @ApiImplicitParams({
         @ApiImplicitParam(
@@ -206,29 +207,29 @@ public class EventDeadLettersRoutes implements Routes {
             value = "Compulsory. Needs to be a valid group name"),
         @ApiImplicitParam(
             required = true,
-            name = "eventId",
+            name = "insertionId",
             paramType = "path parameter",
             dataType = "String",
             defaultValue = "none",
-            value = "Compulsory. Needs to be a valid eventId")
+            value = "Compulsory. Needs to be a valid insertionId")
     })
     @ApiResponses(value = {
         @ApiResponse(code = HttpStatus.OK_200, message = "OK - returns an event detail", response = Event.class),
-        @ApiResponse(code = HttpStatus.BAD_REQUEST_400, message = "Invalid group name or event id"),
-        @ApiResponse(code = HttpStatus.NOT_FOUND_404, message = "No event with this eventId"),
+        @ApiResponse(code = HttpStatus.BAD_REQUEST_400, message = "Invalid group name or insertion id"),
+        @ApiResponse(code = HttpStatus.NOT_FOUND_404, message = "No event with this insertionId"),
         @ApiResponse(code = HttpStatus.INTERNAL_SERVER_ERROR_500, message = INTERNAL_SERVER_ERROR)
     })
     private String getEventDetails(Request request, Response response) {
         Group group = parseGroup(request);
-        Event.EventId eventId = parseEventId(request);
+        EventDeadLetters.InsertionId insertionId = parseInsertionId(request);
 
-        return eventDeadLettersService.getEvent(group, eventId)
+        return eventDeadLettersService.getEvent(group, insertionId)
             .map(eventSerializer::toJson)
             .block();
     }
 
     @DELETE
-    @Path("/groups/" + GROUP_PARAM + "/" + EVENT_ID_PARAM)
+    @Path("/groups/" + GROUP_PARAM + "/" + INSERTION_ID_PARAMETER)
     @ApiOperation(value = "Deletes an event")
     @ApiImplicitParams({
         @ApiImplicitParam(
@@ -240,28 +241,28 @@ public class EventDeadLettersRoutes implements Routes {
             value = "Compulsory. Needs to be a valid group name"),
         @ApiImplicitParam(
             required = true,
-            name = "eventId",
+            name = "insertionId",
             paramType = "path parameter",
             dataType = "String",
             defaultValue = "none",
-            value = "Compulsory. Needs to be a valid eventId")
+            value = "Compulsory. Needs to be a valid insertionId")
     })
     @ApiResponses(value = {
         @ApiResponse(code = HttpStatus.NO_CONTENT_204, message = "OK - Event deleted"),
-        @ApiResponse(code = HttpStatus.BAD_REQUEST_400, message = "Invalid group name or event id"),
+        @ApiResponse(code = HttpStatus.BAD_REQUEST_400, message = "Invalid group name or insertion id"),
         @ApiResponse(code = HttpStatus.INTERNAL_SERVER_ERROR_500, message = INTERNAL_SERVER_ERROR)
     })
     private Response deleteEvent(Request request, Response response) {
         Group group = parseGroup(request);
-        Event.EventId eventId = parseEventId(request);
+        EventDeadLetters.InsertionId insertionId = parseInsertionId(request);
 
-        eventDeadLettersService.deleteEvent(group, eventId);
+        eventDeadLettersService.deleteEvent(group, insertionId);
         response.status(HttpStatus.NO_CONTENT_204);
         return response;
     }
 
     @POST
-    @Path("/groups/" + GROUP_PARAM + "/" + EVENT_ID_PARAM)
+    @Path("/groups/" + GROUP_PARAM + "/" + INSERTION_ID_PARAMETER)
     @ApiOperation(value = "Performing action on an event")
     @ApiImplicitParams({
         @ApiImplicitParam(
@@ -273,11 +274,11 @@ public class EventDeadLettersRoutes implements Routes {
             value = "Compulsory. Needs to be a valid group name"),
         @ApiImplicitParam(
             required = true,
-            name = "eventId",
+            name = "insertionId",
             paramType = "path parameter",
             dataType = "String",
             defaultValue = "none",
-            value = "Compulsory. Needs to be a valid eventId"),
+            value = "Compulsory. Needs to be a valid insertionId"),
         @ApiImplicitParam(
             required = true,
             dataType = "String",
@@ -292,16 +293,16 @@ public class EventDeadLettersRoutes implements Routes {
             responseHeaders = {
                 @ResponseHeader(name = "Location", description = "URL of the resource associated with the scheduled task")
             }),
-        @ApiResponse(code = HttpStatus.BAD_REQUEST_400, message = "Invalid group name, event id or action argument"),
-        @ApiResponse(code = HttpStatus.NOT_FOUND_404, message = "No event with this eventId"),
+        @ApiResponse(code = HttpStatus.BAD_REQUEST_400, message = "Invalid group name, insertion id or action argument"),
+        @ApiResponse(code = HttpStatus.NOT_FOUND_404, message = "No event with this insertionId"),
         @ApiResponse(code = HttpStatus.INTERNAL_SERVER_ERROR_500, message = INTERNAL_SERVER_ERROR)
     })
     public TaskIdDto performActionOnSingleEvent(Request request, Response response) {
         Group group = parseGroup(request);
-        Event.EventId eventId = parseEventId(request);
+        EventDeadLetters.InsertionId insertionId = parseInsertionId(request);
         assertValidActionParameter(request);
 
-        Task task = eventDeadLettersService.redeliverSingleEvent(group, eventId);
+        Task task = eventDeadLettersService.redeliverSingleEvent(group, insertionId);
         TaskId taskId = taskManager.submit(task);
         return TaskIdDto.respond(response, taskId);
     }
@@ -329,14 +330,14 @@ public class EventDeadLettersRoutes implements Routes {
         }
     }
 
-    private Event.EventId parseEventId(Request request) {
-        String eventIdAsString = request.params(EVENT_ID_PARAM);
+    private EventDeadLetters.InsertionId parseInsertionId(Request request) {
+        String insertionIdAsString = request.params(INSERTION_ID_PARAMETER);
         try {
-            return Event.EventId.of(eventIdAsString);
+            return EventDeadLetters.InsertionId.of(insertionIdAsString);
         } catch (Exception e) {
             throw ErrorResponder.builder()
                 .statusCode(HttpStatus.BAD_REQUEST_400)
-                .message("Can not deserialize the supplied eventId: " + eventIdAsString)
+                .message("Can not deserialize the supplied insertionId: " + insertionIdAsString)
                 .cause(e)
                 .type(ErrorResponder.ErrorType.INVALID_ARGUMENT)
                 .haltError();
diff --git a/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/EventDeadLettersRedeliverService.java b/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/EventDeadLettersRedeliverService.java
index 4ec62c9..56c208f 100644
--- a/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/EventDeadLettersRedeliverService.java
+++ b/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/EventDeadLettersRedeliverService.java
@@ -44,13 +44,13 @@ public class EventDeadLettersRedeliverService {
 
     Flux<Task.Result> redeliverEvents(EventRetriever eventRetriever) {
         return eventRetriever.retrieveEvents(deadLetters)
-            .flatMap(entry -> redeliverGroupEvents(entry.getT1(), entry.getT2()));
+            .flatMap(entry -> redeliverGroupEvents(entry.getT1(), entry.getT2(), entry.getT3()));
     }
 
-    private Mono<Task.Result> redeliverGroupEvents(Group group, Event event) {
+    private Mono<Task.Result> redeliverGroupEvents(Group group, Event event, EventDeadLetters.InsertionId insertionId) {
         return eventBus.reDeliver(group, event)
             .then(Mono.fromCallable(() -> {
-                deadLetters.remove(group, event.getEventId());
+                deadLetters.remove(group, insertionId);
                 return Task.Result.COMPLETED;
             }))
             .onErrorResume(e -> {
diff --git a/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/EventDeadLettersRedeliverTask.java b/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/EventDeadLettersRedeliverTask.java
index b863fbf..1defd3e 100644
--- a/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/EventDeadLettersRedeliverTask.java
+++ b/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/EventDeadLettersRedeliverTask.java
@@ -22,7 +22,7 @@ package org.apache.james.webadmin.service;
 import java.util.Optional;
 import java.util.concurrent.atomic.AtomicLong;
 
-import org.apache.james.mailbox.events.Event;
+import org.apache.james.mailbox.events.EventDeadLetters;
 import org.apache.james.mailbox.events.Group;
 import org.apache.james.task.Task;
 import org.apache.james.task.TaskExecutionDetails;
@@ -36,14 +36,14 @@ public class EventDeadLettersRedeliverTask implements Task {
         private final long successfulRedeliveriesCount;
         private final long failedRedeliveriesCount;
         private final Optional<Group> group;
-        private final Optional<Event.EventId> eventId;
+        private final Optional<EventDeadLetters.InsertionId> insertionId;
 
         AdditionalInformation(long successfulRedeliveriesCount, long failedRedeliveriesCount,
-                              Optional<Group> group, Optional<Event.EventId> eventId) {
+                              Optional<Group> group, Optional<EventDeadLetters.InsertionId> insertionId) {
             this.successfulRedeliveriesCount = successfulRedeliveriesCount;
             this.failedRedeliveriesCount = failedRedeliveriesCount;
             this.group = group;
-            this.eventId = eventId;
+            this.insertionId = insertionId;
         }
 
         public long getSuccessfulRedeliveriesCount() {
@@ -60,8 +60,8 @@ public class EventDeadLettersRedeliverTask implements Task {
         }
 
         @JsonInclude(JsonInclude.Include.NON_ABSENT)
-        public Optional<String> getEventId() {
-            return eventId.map(eventId -> eventId.getId().toString());
+        public Optional<String> getInsertionId() {
+            return insertionId.map(insertionId -> insertionId.getId().toString());
         }
     }
 
diff --git a/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/EventDeadLettersService.java b/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/EventDeadLettersService.java
index 27bd042..1c73bd2 100644
--- a/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/EventDeadLettersService.java
+++ b/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/EventDeadLettersService.java
@@ -50,20 +50,20 @@ public class EventDeadLettersService {
             .block();
     }
 
-    public List<String> listGroupsEventIdsAsStrings(Group group) {
-        return deadLetters.failedEventIds(group)
-            .map(Event.EventId::getId)
+    public List<String> listGroupsInsertionIdsAsStrings(Group group) {
+        return deadLetters.failedIds(group)
+            .map(EventDeadLetters.InsertionId::getId)
             .map(UUID::toString)
             .collect(Guavate.toImmutableList())
             .block();
     }
 
-    public Mono<Event> getEvent(Group group, Event.EventId eventId) {
-        return deadLetters.failedEvent(group, eventId);
+    public Mono<Event> getEvent(Group group, EventDeadLetters.InsertionId insertionId) {
+        return deadLetters.failedEvent(group, insertionId);
     }
 
-    public void deleteEvent(Group group, Event.EventId eventId) {
-        deadLetters.remove(group, eventId).block();
+    public void deleteEvent(Group group, EventDeadLetters.InsertionId insertionId) {
+        deadLetters.remove(group, insertionId).block();
     }
 
     public Task redeliverAllEvents() {
@@ -74,7 +74,7 @@ public class EventDeadLettersService {
         return new EventDeadLettersRedeliverTask(redeliverService, EventRetriever.groupEvents(group));
     }
 
-    public Task redeliverSingleEvent(Group group, Event.EventId eventId) {
-        return new EventDeadLettersRedeliverTask(redeliverService, EventRetriever.singleEvent(group, eventId));
+    public Task redeliverSingleEvent(Group group, EventDeadLetters.InsertionId insertionId) {
+        return new EventDeadLettersRedeliverTask(redeliverService, EventRetriever.singleEvent(group, insertionId));
     }
 }
diff --git a/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/EventRetriever.java b/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/EventRetriever.java
index a780e8f..a0b4f8e 100644
--- a/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/EventRetriever.java
+++ b/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/EventRetriever.java
@@ -27,7 +27,7 @@ import org.apache.james.mailbox.events.Group;
 
 import reactor.core.publisher.Flux;
 import reactor.core.publisher.Mono;
-import reactor.util.function.Tuple2;
+import reactor.util.function.Tuple3;
 
 public interface EventRetriever {
     static EventRetriever allEvents() {
@@ -38,20 +38,19 @@ public interface EventRetriever {
         return new GroupEventsRetriever(group);
     }
 
-    static EventRetriever singleEvent(Group group, Event.EventId eventId) {
-        return new SingleEventRetriever(group, eventId);
+    static EventRetriever singleEvent(Group group, EventDeadLetters.InsertionId insertionId) {
+        return new SingleEventRetriever(group, insertionId);
     }
 
     Optional<Group> forGroup();
 
-    Optional<Event.EventId> forEvent();
+    Optional<EventDeadLetters.InsertionId> forEvent();
 
-    Flux<Tuple2<Group, Event>> retrieveEvents(EventDeadLetters deadLetters);
+    Flux<Tuple3<Group, Event, EventDeadLetters.InsertionId>> retrieveEvents(EventDeadLetters deadLetters);
 
-    default Flux<Tuple2<Group, Event>> listGroupEvents(EventDeadLetters deadLetters, Group group) {
-        return deadLetters.failedEventIds(group)
-            .flatMap(eventId -> deadLetters.failedEvent(group, eventId))
-            .flatMap(event -> Flux.zip(Mono.just(group), Mono.just(event)));
+    default Flux<Tuple3<Group, Event, EventDeadLetters.InsertionId>> listGroupEvents(EventDeadLetters deadLetters, Group group) {
+        return deadLetters.failedIds(group)
+            .flatMap(insertionId -> Flux.zip(Mono.just(group), deadLetters.failedEvent(group, insertionId), Mono.just(insertionId)));
     }
 
     class AllEventsRetriever implements EventRetriever {
@@ -61,12 +60,12 @@ public interface EventRetriever {
         }
 
         @Override
-        public Optional<Event.EventId> forEvent() {
+        public Optional<EventDeadLetters.InsertionId> forEvent() {
             return Optional.empty();
         }
 
         @Override
-        public Flux<Tuple2<Group, Event>> retrieveEvents(EventDeadLetters deadLetters) {
+        public Flux<Tuple3<Group, Event, EventDeadLetters.InsertionId>> retrieveEvents(EventDeadLetters deadLetters) {
             return deadLetters.groupsWithFailedEvents()
                 .flatMap(group -> listGroupEvents(deadLetters, group));
         }
@@ -85,23 +84,23 @@ public interface EventRetriever {
         }
 
         @Override
-        public Optional<Event.EventId> forEvent() {
+        public Optional<EventDeadLetters.InsertionId> forEvent() {
             return Optional.empty();
         }
 
         @Override
-        public Flux<Tuple2<Group, Event>> retrieveEvents(EventDeadLetters deadLetters) {
+        public Flux<Tuple3<Group, Event, EventDeadLetters.InsertionId>> retrieveEvents(EventDeadLetters deadLetters) {
             return listGroupEvents(deadLetters, group);
         }
     }
 
     class SingleEventRetriever implements EventRetriever {
         private final Group group;
-        private final Event.EventId eventId;
+        private final EventDeadLetters.InsertionId insertionId;
 
-        SingleEventRetriever(Group group, Event.EventId eventId) {
+        SingleEventRetriever(Group group, EventDeadLetters.InsertionId insertionId) {
             this.group = group;
-            this.eventId = eventId;
+            this.insertionId = insertionId;
         }
 
         @Override
@@ -110,13 +109,13 @@ public interface EventRetriever {
         }
 
         @Override
-        public Optional<Event.EventId> forEvent() {
-            return Optional.of(eventId);
+        public Optional<EventDeadLetters.InsertionId> forEvent() {
+            return Optional.of(insertionId);
         }
 
         @Override
-        public Flux<Tuple2<Group, Event>> retrieveEvents(EventDeadLetters deadLetters) {
-            return Flux.just(group).zipWith(deadLetters.failedEvent(group, eventId));
+        public Flux<Tuple3<Group, Event, EventDeadLetters.InsertionId>> retrieveEvents(EventDeadLetters deadLetters) {
+            return Flux.zip(Mono.just(group), deadLetters.failedEvent(group, insertionId), Mono.just(insertionId));
         }
     }
 }
diff --git a/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/EventDeadLettersRoutesTest.java b/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/EventDeadLettersRoutesTest.java
index f6c3a60..b12d308 100644
--- a/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/EventDeadLettersRoutesTest.java
+++ b/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/EventDeadLettersRoutesTest.java
@@ -73,6 +73,12 @@ class EventDeadLettersRoutesTest {
     private static final String BOB = "bob@apache.org";
     private static final String UUID_1 = "6e0dd59d-660e-4d9b-b22f-0354479f47b4";
     private static final String UUID_2 = "6e0dd59d-660e-4d9b-b22f-0354479f47b5";
+    private static final String INSERTION_UUID_1 = "6e0dd59d-660e-4d9b-b22f-0354479f47b7";
+    private static final String INSERTION_UUID_2 = "6e0dd59d-660e-4d9b-b22f-0354479f47b8";
+    private static final String INSERTION_UUID_3 = "6e0dd59d-660e-4d9b-b22f-0354479f47b9";
+    private static final EventDeadLetters.InsertionId INSERTION_ID_1 = EventDeadLetters.InsertionId.of(INSERTION_UUID_1);
+    private static final EventDeadLetters.InsertionId INSERTION_ID_2 = EventDeadLetters.InsertionId.of(INSERTION_UUID_2);
+    private static final EventDeadLetters.InsertionId INSERTION_ID_3 = EventDeadLetters.InsertionId.of(INSERTION_UUID_3);
     private static final MailboxListener.MailboxAdded EVENT_1 = EventFactory.mailboxAdded()
         .eventId(Event.EventId.of(UUID_1))
         .user(User.fromUsername(BOB))
@@ -148,7 +154,7 @@ class EventDeadLettersRoutesTest {
 
         @Test
         void getGroupsShouldReturnGroupsOfContainedEvents() {
-            deadLetters.store(new EventBusTestFixture.GroupA(), EVENT_1).block();
+            deadLetters.store(new EventBusTestFixture.GroupA(), EVENT_1, INSERTION_ID_1).block();
 
             when()
                 .get("/events/deadLetter/groups")
@@ -160,8 +166,8 @@ class EventDeadLettersRoutesTest {
 
         @Test
         void getGroupsShouldReturnGroupsOfContainedEventsWithoutDuplicates() {
-            deadLetters.store(new EventBusTestFixture.GroupA(), EVENT_1).block();
-            deadLetters.store(new EventBusTestFixture.GroupA(), EVENT_2).block();
+            deadLetters.store(new EventBusTestFixture.GroupA(), EVENT_1, INSERTION_ID_1).block();
+            deadLetters.store(new EventBusTestFixture.GroupA(), EVENT_2, INSERTION_ID_2).block();
 
             when()
                 .get("/events/deadLetter/groups")
@@ -173,8 +179,8 @@ class EventDeadLettersRoutesTest {
 
         @Test
         void getGroupsShouldReturnGroupsOfAllContainedEvents() {
-            deadLetters.store(new EventBusTestFixture.GroupA(), EVENT_1).block();
-            deadLetters.store(new EventBusTestFixture.GroupB(), EVENT_2).block();
+            deadLetters.store(new EventBusTestFixture.GroupA(), EVENT_1, INSERTION_ID_1).block();
+            deadLetters.store(new EventBusTestFixture.GroupB(), EVENT_2, INSERTION_ID_2).block();
 
             when()
                 .get("/events/deadLetter/groups")
@@ -211,40 +217,40 @@ class EventDeadLettersRoutesTest {
 
         @Test
         void listEventsShouldReturnContainedEvents() {
-            deadLetters.store(new EventBusTestFixture.GroupA(), EVENT_1).block();
+            deadLetters.store(new EventBusTestFixture.GroupA(), EVENT_1, INSERTION_ID_1).block();
 
             when()
                 .get("/events/deadLetter/groups/" + SERIALIZED_GROUP_A)
             .then()
                 .statusCode(HttpStatus.OK_200)
                 .contentType(ContentType.JSON)
-                .body(".", containsInAnyOrder(UUID_1));
+                .body(".", containsInAnyOrder(INSERTION_UUID_1));
         }
 
         @Test
         void listEventsShouldNotReturnEventsOfOtherGroups() {
-            deadLetters.store(new EventBusTestFixture.GroupA(), EVENT_1).block();
-            deadLetters.store(new EventBusTestFixture.GroupB(), EVENT_2).block();
+            deadLetters.store(new EventBusTestFixture.GroupA(), EVENT_1, INSERTION_ID_1).block();
+            deadLetters.store(new EventBusTestFixture.GroupB(), EVENT_2, INSERTION_ID_2).block();
 
             when()
                 .get("/events/deadLetter/groups/" + SERIALIZED_GROUP_A)
             .then()
                 .statusCode(HttpStatus.OK_200)
                 .contentType(ContentType.JSON)
-                .body(".", containsInAnyOrder(UUID_1));
+                .body(".", containsInAnyOrder(INSERTION_UUID_1));
         }
 
         @Test
         void listEventsShouldReturnAllEvents() {
-            deadLetters.store(new EventBusTestFixture.GroupA(), EVENT_1).block();
-            deadLetters.store(new EventBusTestFixture.GroupA(), EVENT_2).block();
+            deadLetters.store(new EventBusTestFixture.GroupA(), EVENT_1, INSERTION_ID_1).block();
+            deadLetters.store(new EventBusTestFixture.GroupA(), EVENT_2, INSERTION_ID_2).block();
 
             when()
                 .get("/events/deadLetter/groups/" + SERIALIZED_GROUP_A)
             .then()
                 .statusCode(HttpStatus.OK_200)
                 .contentType(ContentType.JSON)
-                .body(".", containsInAnyOrder(UUID_1, UUID_2));
+                .body(".", containsInAnyOrder(INSERTION_UUID_1, INSERTION_UUID_2));
         }
     }
 
@@ -252,10 +258,10 @@ class EventDeadLettersRoutesTest {
     class GetEvent {
         @Test
         void getEventShouldReturnEvent() {
-            deadLetters.store(new EventBusTestFixture.GroupA(), EVENT_1).block();
+            deadLetters.store(new EventBusTestFixture.GroupA(), EVENT_1, INSERTION_ID_1).block();
 
             String response = when()
-                .get("/events/deadLetter/groups/" + SERIALIZED_GROUP_A + "/" + UUID_1)
+                .get("/events/deadLetter/groups/" + SERIALIZED_GROUP_A + "/" + INSERTION_UUID_1)
             .then()
                 .statusCode(HttpStatus.OK_200)
                 .contentType(ContentType.JSON)
@@ -268,7 +274,7 @@ class EventDeadLettersRoutesTest {
         @Test
         void getEventShouldReturn404WhenNotFound() {
             when()
-                .get("/events/deadLetter/groups/" + SERIALIZED_GROUP_A + "/" + UUID_1)
+                .get("/events/deadLetter/groups/" + SERIALIZED_GROUP_A + "/" + INSERTION_UUID_1)
             .then()
                 .statusCode(HttpStatus.NOT_FOUND_404);
         }
@@ -282,13 +288,13 @@ class EventDeadLettersRoutesTest {
                 .contentType(ContentType.JSON)
                 .body("statusCode", is(400))
                 .body("type", is(ErrorResponder.ErrorType.INVALID_ARGUMENT.getType()))
-                .body("message", is("Can not deserialize the supplied eventId: invalid"));
+                .body("message", is("Can not deserialize the supplied insertionId: invalid"));
         }
 
         @Test
         void getEventShouldFailWhenInvalidGroup() {
             when()
-                .get("/events/deadLetter/groups/invalid/" + UUID_1)
+                .get("/events/deadLetter/groups/invalid/" + INSERTION_UUID_1)
             .then()
                 .statusCode(HttpStatus.BAD_REQUEST_400)
                 .contentType(ContentType.JSON)
@@ -302,10 +308,10 @@ class EventDeadLettersRoutesTest {
     class Delete {
         @Test
         void deleteShouldReturnOk() {
-            deadLetters.store(new EventBusTestFixture.GroupA(), EVENT_1).block();
+            deadLetters.store(new EventBusTestFixture.GroupA(), EVENT_1, INSERTION_ID_1).block();
 
             when()
-                .delete("/events/deadLetter/groups/" + SERIALIZED_GROUP_A + "/" + UUID_1)
+                .delete("/events/deadLetter/groups/" + SERIALIZED_GROUP_A + "/" + INSERTION_UUID_1)
             .then()
                 .statusCode(HttpStatus.NO_CONTENT_204);
         }
@@ -331,7 +337,7 @@ class EventDeadLettersRoutesTest {
         }
 
         @Test
-        void deleteShouldFailWhenInvalidEventId() {
+        void deleteShouldFailWhenInvalidInsertionId() {
             when()
                 .delete("/events/deadLetter/groups/" + SERIALIZED_GROUP_A + "/invalid")
             .then()
@@ -339,18 +345,18 @@ class EventDeadLettersRoutesTest {
                 .contentType(ContentType.JSON)
                 .body("statusCode", is(400))
                 .body("type", is(ErrorResponder.ErrorType.INVALID_ARGUMENT.getType()))
-                .body("message", is("Can not deserialize the supplied eventId: invalid"));
+                .body("message", is("Can not deserialize the supplied insertionId: invalid"));
         }
 
         @Test
         void deleteShouldRemoveEvent() {
-            deadLetters.store(new EventBusTestFixture.GroupA(), EVENT_1).block();
+            deadLetters.store(new EventBusTestFixture.GroupA(), EVENT_1, INSERTION_ID_1).block();
 
             with()
-                .delete("/events/deadLetter/groups/" + SERIALIZED_GROUP_A + "/" + UUID_1);
+                .delete("/events/deadLetter/groups/" + SERIALIZED_GROUP_A + "/" + INSERTION_UUID_1);
 
             when()
-                .get("/events/deadLetter/groups/" + SERIALIZED_GROUP_A + "/" + UUID_1)
+                .get("/events/deadLetter/groups/" + SERIALIZED_GROUP_A + "/" + INSERTION_UUID_1)
             .then()
                 .statusCode(HttpStatus.NOT_FOUND_404);
         }
@@ -387,7 +393,7 @@ class EventDeadLettersRoutesTest {
 
         @Test
         void postRedeliverAllEventsShouldHaveSuccessfulCompletedTask() {
-            deadLetters.store(groupA, EVENT_1).block();
+            deadLetters.store(groupA, EVENT_1, INSERTION_ID_1).block();
 
             String taskId = with()
                 .queryParam("action", EVENTS_ACTION)
@@ -405,7 +411,7 @@ class EventDeadLettersRoutesTest {
                 .body("additionalInformation.successfulRedeliveriesCount", is(1))
                 .body("additionalInformation.failedRedeliveriesCount", is(0))
                 .body("additionalInformation.group", is(nullValue()))
-                .body("additionalInformation.eventId", is(nullValue()))
+                .body("additionalInformation.insertionId", is(nullValue()))
                 .body("type", is(EventDeadLettersRedeliverTask.TYPE))
                 .body("startedDate", is(notNullValue()))
                 .body("submitDate", is(notNullValue()))
@@ -414,7 +420,7 @@ class EventDeadLettersRoutesTest {
 
         @Test
         void postRedeliverAllEventsShouldRemoveEventFromDeadLetters() {
-            deadLetters.store(groupA, EVENT_1).block();
+            deadLetters.store(groupA, EVENT_1, INSERTION_ID_1).block();
 
             String taskId = with()
                 .queryParam("action", EVENTS_ACTION)
@@ -432,14 +438,14 @@ class EventDeadLettersRoutesTest {
                 .body("additionalInformation.failedRedeliveriesCount", is(0));
 
             when()
-                .get("/events/deadLetter/groups/" + SERIALIZED_GROUP_A + "/" + UUID_1)
+                .get("/events/deadLetter/groups/" + SERIALIZED_GROUP_A + "/" + INSERTION_UUID_1)
             .then()
                 .statusCode(HttpStatus.NOT_FOUND_404);
         }
 
         @Test
         void postRedeliverAllEventsShouldRedeliverEventFromDeadLetters() {
-            deadLetters.store(groupA, EVENT_1).block();
+            deadLetters.store(groupA, EVENT_1, INSERTION_ID_1).block();
 
             String taskId = with()
                 .queryParam("action", EVENTS_ACTION)
@@ -461,9 +467,9 @@ class EventDeadLettersRoutesTest {
 
         @Test
         void postRedeliverAllEventsShouldRemoveAllEventsFromDeadLetters() {
-            deadLetters.store(groupA, EVENT_1).block();
-            deadLetters.store(groupA, EVENT_2).block();
-            deadLetters.store(groupB, EVENT_2).block();
+            deadLetters.store(groupA, EVENT_1, INSERTION_ID_1).block();
+            deadLetters.store(groupA, EVENT_2, INSERTION_ID_2).block();
+            deadLetters.store(groupB, EVENT_2, INSERTION_ID_3).block();
 
             String taskId = with()
                 .queryParam("action", EVENTS_ACTION)
@@ -490,9 +496,9 @@ class EventDeadLettersRoutesTest {
 
         @Test
         void postRedeliverAllEventsShouldRedeliverAllEventsFromDeadLetters() {
-            deadLetters.store(groupA, EVENT_1).block();
-            deadLetters.store(groupA, EVENT_2).block();
-            deadLetters.store(groupB, EVENT_2).block();
+            deadLetters.store(groupA, EVENT_1, INSERTION_ID_1).block();
+            deadLetters.store(groupA, EVENT_2, INSERTION_ID_2).block();
+            deadLetters.store(groupB, EVENT_2, INSERTION_ID_3).block();
 
             String taskId = with()
                 .queryParam("action", EVENTS_ACTION)
@@ -515,7 +521,7 @@ class EventDeadLettersRoutesTest {
 
         @Test
         void postRedeliverAllEventsShouldFailWhenInvalidAction() {
-            deadLetters.store(groupA, EVENT_1).block();
+            deadLetters.store(groupA, EVENT_1, INSERTION_ID_1).block();
 
             given()
                 .queryParam("action", "invalid-action")
@@ -532,7 +538,7 @@ class EventDeadLettersRoutesTest {
 
         @Test
         void postRedeliverAllEventsShouldFailWhenMissingAction() {
-            deadLetters.store(new EventBusTestFixture.GroupA(), EVENT_1).block();
+            deadLetters.store(new EventBusTestFixture.GroupA(), EVENT_1, INSERTION_ID_1).block();
 
             when()
                 .post("/events/deadLetter")
@@ -560,7 +566,7 @@ class EventDeadLettersRoutesTest {
 
         @Test
         void postRedeliverGroupEventsShouldCreateATask() {
-            deadLetters.store(groupA, EVENT_1).block();
+            deadLetters.store(groupA, EVENT_1, INSERTION_ID_1).block();
 
             given()
                 .queryParam("action", EVENTS_ACTION)
@@ -574,7 +580,7 @@ class EventDeadLettersRoutesTest {
 
         @Test
         void postRedeliverGroupEventsShouldHaveSuccessfulCompletedTask() {
-            deadLetters.store(groupA, EVENT_1).block();
+            deadLetters.store(groupA, EVENT_1, INSERTION_ID_1).block();
 
             String taskId = with()
                 .queryParam("action", EVENTS_ACTION)
@@ -592,7 +598,7 @@ class EventDeadLettersRoutesTest {
                 .body("additionalInformation.successfulRedeliveriesCount", is(1))
                 .body("additionalInformation.failedRedeliveriesCount", is(0))
                 .body("additionalInformation.group", is(SERIALIZED_GROUP_A))
-                .body("additionalInformation.eventId", is(nullValue()))
+                .body("additionalInformation.insertionId", is(nullValue()))
                 .body("type", is(EventDeadLettersRedeliverTask.TYPE))
                 .body("startedDate", is(notNullValue()))
                 .body("submitDate", is(notNullValue()))
@@ -601,7 +607,7 @@ class EventDeadLettersRoutesTest {
 
         @Test
         void postRedeliverGroupEventsShouldRemoveEventFromDeadLetters() {
-            deadLetters.store(groupA, EVENT_1).block();
+            deadLetters.store(groupA, EVENT_1, INSERTION_ID_1).block();
 
             String taskId = with()
                 .queryParam("action", EVENTS_ACTION)
@@ -620,14 +626,14 @@ class EventDeadLettersRoutesTest {
                 .body("additionalInformation.group", is(SERIALIZED_GROUP_A));
 
             when()
-                .get("/events/deadLetter/groups/" + SERIALIZED_GROUP_A + "/" + UUID_1)
+                .get("/events/deadLetter/groups/" + SERIALIZED_GROUP_A + "/" + INSERTION_UUID_1)
             .then()
                 .statusCode(HttpStatus.NOT_FOUND_404);
         }
 
         @Test
         void postRedeliverGroupEventsShouldRedeliverEventFromDeadLetters() {
-            deadLetters.store(groupA, EVENT_1).block();
+            deadLetters.store(groupA, EVENT_1, INSERTION_ID_1).block();
 
             String taskId = with()
                 .queryParam("action", EVENTS_ACTION)
@@ -650,8 +656,8 @@ class EventDeadLettersRoutesTest {
 
         @Test
         void postRedeliverGroupEventsShouldRemoveAllGroupEventsFromDeadLetters() {
-            deadLetters.store(groupA, EVENT_1).block();
-            deadLetters.store(groupA, EVENT_2).block();
+            deadLetters.store(groupA, EVENT_1, INSERTION_ID_1).block();
+            deadLetters.store(groupA, EVENT_2, INSERTION_ID_2).block();
 
             String taskId = with()
                 .queryParam("action", EVENTS_ACTION)
@@ -679,8 +685,8 @@ class EventDeadLettersRoutesTest {
 
         @Test
         void postRedeliverGroupEventsShouldRedeliverAllGroupEventsFromDeadLetters() {
-            deadLetters.store(groupA, EVENT_1).block();
-            deadLetters.store(groupA, EVENT_2).block();
+            deadLetters.store(groupA, EVENT_1, INSERTION_ID_1).block();
+            deadLetters.store(groupA, EVENT_2, INSERTION_ID_2).block();
 
             String taskId = with()
                 .queryParam("action", EVENTS_ACTION)
@@ -703,7 +709,7 @@ class EventDeadLettersRoutesTest {
 
         @Test
         void postRedeliverGroupEventsShouldFailWhenInvalidAction() {
-            deadLetters.store(groupA, EVENT_1).block();
+            deadLetters.store(groupA, EVENT_1, INSERTION_ID_1).block();
 
             given()
                 .queryParam("action", "invalid-action")
@@ -720,7 +726,7 @@ class EventDeadLettersRoutesTest {
 
         @Test
         void postRedeliverGroupEventsShouldFailWhenMissingAction() {
-            deadLetters.store(new EventBusTestFixture.GroupA(), EVENT_1).block();
+            deadLetters.store(new EventBusTestFixture.GroupA(), EVENT_1, INSERTION_ID_1).block();
 
             when()
                 .post("/events/deadLetter/groups/" + SERIALIZED_GROUP_A)
@@ -746,6 +752,24 @@ class EventDeadLettersRoutesTest {
                 .body("type", is(ErrorResponder.ErrorType.INVALID_ARGUMENT.getType()))
                 .body("message", is("Can not deserialize the supplied group: invalid"));
         }
+
+        @Test
+        void postRedeliverGroupEventsShouldNotRedeliverAllNotMatchedGroupEventsFromDeadLetter() {
+            deadLetters.store(groupA, EVENT_1, INSERTION_ID_1).block();
+
+            with()
+                .queryParam("action", EVENTS_ACTION)
+                .post("/events/deadLetter/groups/" + new EventBusTestFixture.GroupB().asString())
+                .jsonPath()
+                .get("taskId");
+
+            when()
+                .get("/events/deadLetter/groups/" + SERIALIZED_GROUP_A)
+            .then()
+                .statusCode(HttpStatus.OK_200)
+                .contentType(ContentType.JSON)
+                .body(".", hasSize(1));
+        }
     }
 
     @Nested
@@ -762,12 +786,12 @@ class EventDeadLettersRoutesTest {
 
         @Test
         void postRedeliverSingleEventShouldCreateATask() {
-            deadLetters.store(groupA, EVENT_1).block();
+            deadLetters.store(groupA, EVENT_1, INSERTION_ID_1).block();
 
             given()
                 .queryParam("action", EVENTS_ACTION)
             .when()
-                .post("/events/deadLetter/groups/" + SERIALIZED_GROUP_A + "/" + UUID_1)
+                .post("/events/deadLetter/groups/" + SERIALIZED_GROUP_A + "/" + INSERTION_UUID_1)
             .then()
                 .statusCode(HttpStatus.CREATED_201)
                 .header("Location", is(notNullValue()))
@@ -776,11 +800,11 @@ class EventDeadLettersRoutesTest {
 
         @Test
         void postRedeliverSingleEventShouldHaveSuccessfulCompletedTask() {
-            deadLetters.store(groupA, EVENT_1).block();
+            deadLetters.store(groupA, EVENT_1, INSERTION_ID_1).block();
 
             String taskId = with()
                 .queryParam("action", EVENTS_ACTION)
-                .post("/events/deadLetter/groups/" + SERIALIZED_GROUP_A + "/" + UUID_1)
+                .post("/events/deadLetter/groups/" + SERIALIZED_GROUP_A + "/" + INSERTION_UUID_1)
                 .jsonPath()
                 .get("taskId");
 
@@ -794,7 +818,7 @@ class EventDeadLettersRoutesTest {
                 .body("additionalInformation.successfulRedeliveriesCount", is(1))
                 .body("additionalInformation.failedRedeliveriesCount", is(0))
                 .body("additionalInformation.group", is(SERIALIZED_GROUP_A))
-                .body("additionalInformation.eventId", is(UUID_1))
+                .body("additionalInformation.insertionId", is(INSERTION_UUID_1))
                 .body("type", is(EventDeadLettersRedeliverTask.TYPE))
                 .body("startedDate", is(notNullValue()))
                 .body("submitDate", is(notNullValue()))
@@ -803,11 +827,11 @@ class EventDeadLettersRoutesTest {
 
         @Test
         void postRedeliverSingleEventShouldRemoveEventFromDeadLetters() {
-            deadLetters.store(groupA, EVENT_1).block();
+            deadLetters.store(groupA, EVENT_1, INSERTION_ID_1).block();
 
             String taskId = with()
                 .queryParam("action", EVENTS_ACTION)
-                .post("/events/deadLetter/groups/" + SERIALIZED_GROUP_A + "/" + UUID_1)
+                .post("/events/deadLetter/groups/" + SERIALIZED_GROUP_A + "/" + INSERTION_UUID_1)
                 .jsonPath()
                 .get("taskId");
 
@@ -820,21 +844,21 @@ class EventDeadLettersRoutesTest {
                 .body("additionalInformation.successfulRedeliveriesCount", is(1))
                 .body("additionalInformation.failedRedeliveriesCount", is(0))
                 .body("additionalInformation.group", is(SERIALIZED_GROUP_A))
-                .body("additionalInformation.eventId", is(UUID_1));
+                .body("additionalInformation.insertionId", is(INSERTION_UUID_1));
 
             when()
-                .get("/events/deadLetter/groups/" + SERIALIZED_GROUP_A + "/" + UUID_1)
+                .get("/events/deadLetter/groups/" + SERIALIZED_GROUP_A + "/" + INSERTION_UUID_1)
             .then()
                 .statusCode(HttpStatus.NOT_FOUND_404);
         }
 
         @Test
         void postRedeliverSingleEventShouldRedeliverEventFromDeadLetters() {
-            deadLetters.store(groupA, EVENT_1).block();
+            deadLetters.store(groupA, EVENT_1, INSERTION_ID_1).block();
 
             String taskId = with()
                 .queryParam("action", EVENTS_ACTION)
-                .post("/events/deadLetter/groups/" + SERIALIZED_GROUP_A + "/" + UUID_1)
+                .post("/events/deadLetter/groups/" + SERIALIZED_GROUP_A + "/" + INSERTION_UUID_1)
                 .jsonPath()
                 .get("taskId");
 
@@ -847,7 +871,7 @@ class EventDeadLettersRoutesTest {
                 .body("additionalInformation.successfulRedeliveriesCount", is(1))
                 .body("additionalInformation.failedRedeliveriesCount", is(0))
                 .body("additionalInformation.group", is(SERIALIZED_GROUP_A))
-                .body("additionalInformation.eventId", is(UUID_1));
+                .body("additionalInformation.insertionId", is(INSERTION_UUID_1));
 
             assertThat(eventCollector.getEvents()).hasSize(1);
         }
@@ -857,19 +881,19 @@ class EventDeadLettersRoutesTest {
             given()
                 .queryParam("action", EVENTS_ACTION)
             .when()
-                .get("/events/deadLetter/groups/" + SERIALIZED_GROUP_A + "/" + UUID_1)
+                .get("/events/deadLetter/groups/" + SERIALIZED_GROUP_A + "/" + INSERTION_UUID_1)
             .then()
                 .statusCode(HttpStatus.NOT_FOUND_404);
         }
 
         @Test
         void postRedeliverSingleEventShouldFailWhenInvalidAction() {
-            deadLetters.store(groupA, EVENT_1).block();
+            deadLetters.store(groupA, EVENT_1, INSERTION_ID_1).block();
 
             given()
                 .queryParam("action", "invalid-action")
             .when()
-                .post("/events/deadLetter/groups/" + SERIALIZED_GROUP_A + "/" + UUID_1)
+                .post("/events/deadLetter/groups/" + SERIALIZED_GROUP_A + "/" + INSERTION_UUID_1)
             .then()
                 .statusCode(HttpStatus.BAD_REQUEST_400)
                 .contentType(ContentType.JSON)
@@ -881,10 +905,10 @@ class EventDeadLettersRoutesTest {
 
         @Test
         void postRedeliverSingleEventShouldFailWhenMissingAction() {
-            deadLetters.store(new EventBusTestFixture.GroupA(), EVENT_1).block();
+            deadLetters.store(new EventBusTestFixture.GroupA(), EVENT_1, INSERTION_ID_1).block();
 
             when()
-                .post("/events/deadLetter/groups/" + SERIALIZED_GROUP_A + "/" + UUID_1)
+                .post("/events/deadLetter/groups/" + SERIALIZED_GROUP_A + "/" + INSERTION_UUID_1)
             .then()
                 .statusCode(HttpStatus.BAD_REQUEST_400)
                 .contentType(ContentType.JSON)
@@ -905,7 +929,7 @@ class EventDeadLettersRoutesTest {
                 .contentType(ContentType.JSON)
                 .body("statusCode", is(400))
                 .body("type", is(ErrorResponder.ErrorType.INVALID_ARGUMENT.getType()))
-                .body("message", is("Can not deserialize the supplied eventId: invalid"));
+                .body("message", is("Can not deserialize the supplied insertionId: invalid"));
         }
 
         @Test
diff --git a/src/site/markdown/server/manage-webadmin.md b/src/site/markdown/server/manage-webadmin.md
index f039c15..f3a65f3 100644
--- a/src/site/markdown/server/manage-webadmin.md
+++ b/src/site/markdown/server/manage-webadmin.md
@@ -2459,7 +2459,7 @@ This endpoint allows listing failed events for a given group:
 curl -XGET http://ip:port/events/deadLetter/groups/org.apache.james.mailbox.events.EventBusTestFixture$GroupA
 ```
 
-Will return a list of event ids:
+Will return a list of insertionIds:
 
 ```
 ["6e0dd59d-660e-4d9b-b22f-0354479f47b4", "58a8f59d-660e-4d9b-b22f-0354486322a2"]
@@ -2467,7 +2467,7 @@ Will return a list of event ids:
 
 Response codes:
 
- - 200: Success. A list of event ids is returned.
+ - 200: Success. A list of insertion ids is returned.
  - 400: Invalid group name
 
 ### Getting event details
@@ -2481,7 +2481,7 @@ Will return the full JSON associated with this event.
 Response codes:
 
  - 200: Success. A JSON representing this event is returned.
- - 400: Invalid group name or eventId
+ - 400: Invalid group name or insertionId
 
 ### Deleting an event
 
@@ -2494,7 +2494,7 @@ Will delete this event.
 Response codes:
 
  - 204: Success
- - 400: Invalid group name or eventId
+ - 400: Invalid group name or insertionId
 
 ### Redeliver all events
 
@@ -2536,8 +2536,8 @@ If successful, redelivered event will then be removed from "Dead Letter".
 Response codes:
 
  - 201: the taskId of the created task
- - 400: Invalid group name, event id or action argument
- - 404: No event with this eventId
+ - 400: Invalid group name, insertion id or action argument
+ - 404: No event with this insertionId
 
 ### Rescheduling group execution
 


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org