We have an existing EC2 based application that we are migrating to a serverless compute model to seeve the API requests. We also need to process around 3k SQS messages/second coming into our SQS queue (with an average processing time of 600ms/message).
Which serverless compute model should we use for the SQS poller, Lambda v/s ECS Fargate?
If we batch the messages to 25, we will need around 120 instances of the Lambda function. Is there a way to process them in parallel in Java (could only find Python reference)?
Is using Fargate a better approach? (Lambda for API traffic and ECS for SQS polling?)
Using Reserved concurrency on Lambda can be used to limit the number of pollers.