Skip to content

Redis 8.8: Add XNACK support#3728

Merged
a-TODO-rov merged 4 commits into
mainfrom
im/8_8-xnack
May 22, 2026
Merged

Redis 8.8: Add XNACK support#3728
a-TODO-rov merged 4 commits into
mainfrom
im/8_8-xnack

Conversation

@uglide
Copy link
Copy Markdown
Collaborator

@uglide uglide commented Apr 23, 2026

Adds support for XNACK command introduced in Redis 8.8 redis/redis#14797


Note

Medium Risk
Adds a new Redis Streams command across sync/async/reactive/coroutines APIs and updates command encoding/command-type plumbing; risk is mainly API surface expansion and correctness of argument serialization.

Overview
Adds client support for Redis 8.8 Streams negative acknowledgements via the new XNACK command.

Introduces the XNackMode keyword enum and wires xnack methods (single-id and varargs overloads) through the sync/async/reactive/cluster node-selection and Kotlin coroutines APIs, backed by new RedisCommandBuilder.xnack command construction and a new CommandType.XNACK.

Extends unit/integration test coverage to validate request encoding, argument validation, and basic Redis-side behavior (including multi-id and non-existent IDs) when XNACK is available.

Reviewed by Cursor Bugbot for commit afda962. Bugbot is set up for automated code reviews on this repo. Configure here.

@uglide uglide requested a review from a-TODO-rov April 23, 2026 12:48
@jit-ci
Copy link
Copy Markdown

jit-ci Bot commented Apr 23, 2026

🛡️ Jit Security Scan Results

CRITICAL HIGH MEDIUM

✅ No security findings were detected in this PR


Security scan by Jit

Comment thread src/main/java/io/lettuce/core/XNackArgs.java Outdated
Comment thread src/test/java/io/lettuce/core/commands/StreamCommandIntegrationTests.java Outdated
Comment thread src/main/java/io/lettuce/core/AbstractRedisAsyncCommands.java
Copy link
Copy Markdown
Contributor

@a-TODO-rov a-TODO-rov left a comment

Choose a reason for hiding this comment

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

#3728 (comment)
Actually, i will answer myself here. I think its important from now on to support overloads for varargs.

Copy link
Copy Markdown

@cursor cursor Bot left a comment

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 9373cd4. Configure here.

Comment thread src/main/templates/io/lettuce/core/api/RedisStreamCommands.java
Copy link
Copy Markdown
Contributor

@a-TODO-rov a-TODO-rov left a comment

Choose a reason for hiding this comment

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

Thanks @uglide
LGTM

@a-TODO-rov a-TODO-rov merged commit b009df3 into main May 22, 2026
13 checks passed
@a-TODO-rov a-TODO-rov deleted the im/8_8-xnack branch May 22, 2026 11:49
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