feat: add SQS DeleteMessageBatch operation with performance optimizations#54
Open
birme wants to merge 3 commits into
Open
feat: add SQS DeleteMessageBatch operation with performance optimizations#54birme wants to merge 3 commits into
birme wants to merge 3 commits into
Conversation
Add support for batch deletion of messages following the AWS SQS API specification. This enables deleting up to 10 messages in a single request. Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Instead of calling Delete() in a loop for each message, use a single database transaction with IN clauses to delete all messages at once. This improves performance for batch deletions. Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
When querying Message table by id, use only the primary key instead of filtering by tenant_id, queue_id, and id. This avoids slow composite index scans when queues have many messages. Affected queries: - Dequeue UPDATE: ~2s -> instant (primary key lookup) - Delete: uses primary key for Message, keeps composite for KV - DeleteBatch: uses primary key for Message, keeps composite for KV Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
DeleteMessageBatchAPI operation, allowing clients to delete up to 10 messages in a single requestChanges
DeleteBatchmethod to theQueueinterfaceDeleteMessageBatchhandler in the SQS protocol layer with proper error handling for individual entriesDeleteBatchimplementation in SQLite queue using batchDELETE ... WHERE id IN (...)queriesDequeueandDeleteoperations to use primary key lookups for the Message tableTest plan
🤖 Generated with Claude Code