Requirement: Need to consume batches of messages from sqs queue. Series of operation needs to be applied on the data while processing. The message frequency might be high during some time, so the application should be able to handle it by scaling accordingly. We are developing the application for a longer run, once developed there shouldn't be any major development changes.
Project is based on drop-wizard based framework.
Options:
- Lambda - Ruled out this option as huge load of messages in sqs leads to more failures(end up in dlq) in case of lambda. Also i need to do more than one operation on the data, where lambda suits for only one operation on it.
- AWS SQS SDK - Need to write down the thread logic for this (For polling and message handling)
- AWS provided jms based sqs sdk (amazon-sqs-java-messaging-lib) - Seems like a prefect fit for my use case. As it will handle the polling and concurrency logic. But the problem is that the latest release for this jar was from April 2019. Its been nearly 2 years, still no update for this library. Also there is still many open issues unanswered.
I'm afraid aws will decommission this library and also My project should be built in such a way so there shouldn't be no major dev change like change of dependency in future.
Can someone please enlighten me whether i can go for this library or its better to just stick with vanilla aws sqs sdk? If there's any other options Please do mention that also.
--------------------------------------------------------UPDATE------------------------------------------------------------- Thanks for the suggestion of using lambda or step by increasing the number of concurrent limit to tackle the heavy load of 1000 tps. I Have also did some more analysis on my project use case and decided to go with containerized APP using plain vanilla AWS SQS sdk for interacting with SQS.
Reasons for this decision:
SQS -> My_APP -> Another APP
- As you can see the flow, from My_APP i need to interact with another app which can support certain tps. If i have control over polling logic, i can take care of this issue.
- Also My_APP - Its not doing a simple process. more than 1 Process will be happening here. (Transformation, some mapping,...)
- The reason i posted this ques is to get some update on the amazon-sqs-java-messaging-lib Library. I ended up not proceeding with this path as I am not sure on the support of aws on this library in future.