$ mvn -pl saga test -Dtest=IdempotentConsumerTest (the exact same ReserveInventoryCommand -- same commandId -- published twice by hand, to simulate a redelivery; stock starts at 10, the command asks for 3) ProcessedCommand rows for commandId f07ec35c-853c-4405-a024-b62d304dfabb: 1 Stock remaining for GADGET-DUP after two deliveries of the same command: 7 InventoryReply messages actually published: 1 reply: InventoryReply[commandId=f07ec35c-853c-4405-a024-b62d304dfabb, orderId=999, success=true, reason=null] [INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0 Two deliveries, one row in processed_commands, one actual reservation: 10 - 3 = 7, not 4. The second delivery hit IdempotencyGuard.claim(), got false back because the UNIQUE constraint on commandId rejected the second insert, and returned from the listener before calling InventoryService.tryReserve() at all -- it never touched stock, and it never published a second InventoryReply. Exactly one reply reached the topic for two deliveries of the same command.