feat/add global SQS mode with single-queue-per-event and payload size control by nolramaf · Pull Request #1896 · EvolutionAPI/evolution-api · GitHub
Skip to content

feat/add global SQS mode with single-queue-per-event and payload size control#1896

Merged
DavidsonGomes merged 6 commits intoEvolutionAPI:developfrom
nolramaf:feat/add-global-sqs-mode
Sep 17, 2025
Merged

feat/add global SQS mode with single-queue-per-event and payload size control#1896
DavidsonGomes merged 6 commits intoEvolutionAPI:developfrom
nolramaf:feat/add-global-sqs-mode

Conversation

@nolramaf
Copy link
Copy Markdown
Contributor

@nolramaf nolramaf commented Sep 1, 2025

Introduce a global SQS configuration mode with unified queue provisioning and event routing, add large-payload handling via S3 fallback, and enhance queue management abstractions in SqsController.

New Features:

  • Introduce a global SQS mode to automatically provision and publish events to queues across all instances under a common prefix
  • Add S3 fallback storage for oversized SQS messages when payloads exceed MAX_PAYLOAD_SIZE and S3 storage is enabled

Enhancements:

  • Refactor SqsController to dynamically choose between global and per-instance event lists and queue naming based on configuration
  • Validate message payload size and switch dataType to ‘s3’ with automatic upload when exceeding SQS limits
  • Enable content-based deduplication for globally managed FIFO queues
  • Streamline queue listing, creation, and removal abstractions using a unified prefixName parameter

Build:

  • Extend environment configuration to include SQS_GLOBAL_ENABLED, SQS_GLOBAL_PREFIX_NAME, SQS_MAX_PAYLOAD_SIZE, and per-event flags
  • Expose HttpServer.NAME in config for richer message metadata

Summary by Sourcery

Implement a global SQS configuration mode with unified queue management and add large-payload handling via S3 fallback, while refactoring SqsController to simplify dynamic queue routing and message handling.

New Features:

  • Add global SQS mode for unified queue provisioning and event routing across instances
  • Introduce S3 fallback storage for oversize messages exceeding MAX_PAYLOAD_SIZE

Enhancements:

  • Refactor SqsController to select queues and naming dynamically based on global or per-instance mode
  • Validate message payload sizes and switch to S3 storage when exceeding SQS limits
  • Enable content-based deduplication on globally managed FIFO queues
  • Streamline queue listing, creation, and removal by using a unified prefix parameter

Build:

  • Extend configuration with SQS_GLOBAL_ENABLED, SQS_GLOBAL_PREFIX_NAME, MAX_PAYLOAD_SIZE, and per-event flags
  • Expose HttpServer.NAME in environment configuration

@sourcery-ai
Copy link
Copy Markdown
Contributor

sourcery-ai Bot commented Sep 1, 2025

Copy link
Copy Markdown
Contributor

@sourcery-ai sourcery-ai Bot left a comment

Choose a reason for hiding this comment

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

Hey there - I've reviewed your changes and they look great!


Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

@DavidsonGomes DavidsonGomes changed the base branch from main to develop September 2, 2025 13:01
@DavidsonGomes
Copy link
Copy Markdown
Collaborator

@DavidsonGomes DavidsonGomes merged commit d998baa into EvolutionAPI:develop Sep 17, 2025
1 check failed
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