Skip to content

Batch DeleteMessage to substantially increase throughput #327

@EtherZa

Description

@EtherZa

Describe the feature

Batch DeleteMessage on successful handler invocations to reduce both cost and API load, raising FIFO processing limits 5.5 times.

Use Case

Both ReceiveMessage and DeleteMessage count towards the 300 TPS on FIFO queues.

Under load, RecevieMessage returns 10 messages which are then processed by individual handler invocations. Each handler calls DeleteMessage on completion -a total of 11 API calls per 10 messages.

The TPS count with this workflow limits message throughput to ~270 messages per second on FIFO queues and drives up the API cost unnecessarily.

Proposed Solution

Instead of each handler calling DeleteMessage, it would be preferrable to batch the receipts for a single API call of 10 messages or [n] milliseconds (whichever happens first).

At maximum rate; message processing on a FIFO queue would increase from ~272 messages per second (300 / 11 * 10) to ~1500 (300 / 2 * 10) before being throttled.

Other Information

No response

Acknowledgements

  • I may be able to implement this feature request
  • This feature might incur a breaking change

AWS.Messaging (or related) package versions

AWS.Messaging.*

Targeted .NET Platform

all supported

Operating System and version

n/a

Metadata

Metadata

Assignees

No one assigned

    Labels

    feature-requestA feature should be added or improved.p2This is a standard priority issuequeued

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions