Skip to content

Conversation

@sdesaiLULA
Copy link
Contributor

@sdesaiLULA sdesaiLULA commented Jan 3, 2026

This pull request adds comprehensive integration tests for Redis-backed endpoints in Wolverine, focusing on database-backed endpoint scheduling/retries and native dead letter queue (DLQ) support. The new tests ensure that scheduled retries, dead letter queue operations, and related behaviors work correctly with Redis as a transport.

Key additions and improvements:

Database-backed endpoint scheduling and retries:

  • Added DatabaseBackedEndpointTests to verify that Redis stream endpoints implement IDatabaseBackedEndpoint, correctly schedule retries (with and without explicit scheduled times), and that scheduled messages are picked up by polling and moved to the stream as expected.

Dead letter queue (DLQ) functionality:

  • Introduced DeadLetterQueueTests to test that failed messages are moved to the Redis dead letter queue, DLQ entries contain detailed exception information, and the DLQ key format is correct. Also verifies that disabling DLQ prevents the creation of the dead letter stream.
  • Added a DeadLetterQueueTracker and FailingCommandHandler to simulate and track message failures for DLQ testing.

Test infrastructure and coverage:

  • Created helper records and handlers (TestMessage, TestMessageHandler, FailingCommand, FailingCommandHandler) to facilitate message publishing and failure simulation in tests. [1] [2]
  • Ensured tests cover multiple failure scenarios, including multiple failed messages and property checks for DLQ enablement.

…mediate and scheduled sends, and integrate tests for scheduled message flow
…nce RedisTransport and RedisStreamListener for configurable behavior
@jeremydmiller
Copy link
Member

@sdesaiLULA Dude, you've been on fire lately!


// Redis Streams work well in buffered mode by default
Mode = EndpointMode.BufferedInMemory;
Mode = EndpointMode.Durable;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think you need to change that one back. That is for enrollment in the transactional inbox/outbox

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, I was trying few things and forgot to take this out. I fixed it now.

@jeremydmiller
Copy link
Member

@sdesaiLULA Hey, just one small issue that won't impact any of your tests I'd think

@jeremydmiller jeremydmiller merged commit f94503e into JasperFx:main Jan 12, 2026
1 check passed
@jeremydmiller jeremydmiller mentioned this pull request Jan 12, 2026
5 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants