Need advice about which tool to choose?Ask the StackShare community!
Amazon SQS vs WCF: What are the differences?
Introduction:
- Message Delivery Model: Amazon SQS operates on a pull-based message delivery model where consumers have to actively request messages from the queue, whereas WCF supports both push and pull message delivery models, allowing for more flexibility in message handling.
- Scalability: Amazon SQS is highly scalable and can handle an unlimited number of messages, making it suitable for large-scale applications with varying message loads. In contrast, WCF may require additional configuration and infrastructure to achieve similar scalability.
- Managed Service: Amazon SQS is a fully managed service provided by AWS, which takes care of underlying infrastructure, scaling, and maintenance, while WCF requires more manual configuration and management, especially in on-premises environments.
- Protocol Support: Amazon SQS supports multiple protocols such as HTTP, HTTPS, and Amazon SDKs for different programming languages, enabling seamless integration with various applications. WCF, on the other hand, primarily relies on SOAP-based messaging, which may limit interoperability with non-WCF systems.
- Cross-Platform Compatibility: Amazon SQS can be easily used across different platforms and environments, thanks to its cloud-based nature, whereas WCF is more suitable for Windows-based systems and may require additional setup for cross-platform compatibility.
- Pricing Model: Amazon SQS operates on a pay-as-you-go pricing model based on usage, while WCF is typically offered as part of the Windows Server package or Visual Studio subscriptions, making it more cost-effective for certain enterprise setups.
In Summary, Amazon SQS and WCF differ in message delivery model, scalability, managed service aspect, protocol support, cross-platform compatibility, and pricing model.
I want to schedule a message. Amazon SQS provides a delay of 15 minutes, but I want it in some hours.
Example: Let's say a Message1 is consumed by a consumer A but somehow it failed inside the consumer. I would want to put it in a queue and retry after 4hrs. Can I do this in Amazon MQ? I have seen in some Amazon MQ videos saying scheduling messages can be done. But, I'm not sure how.
Mithiridi, I believe you are talking about two different things. 1. If you need to process messages with delays of more 15m or at specific times, it's not a good idea to use queues, independently of tool SQM, Rabbit or Amazon MQ. you should considerer another approach using a scheduled job. 2. For dead queues and policy retries RabbitMQ, for example, doesn't support your use case. https://medium.com/@kiennguyen88/rabbitmq-delay-retry-schedule-with-dead-letter-exchange-31fb25a440fc I'm not sure if that is possible SNS/SQS support, they have a maximum delay for delivery (maxDelayTarget) in seconds but it's not clear the number. You can check this out: https://docs.aws.amazon.com/sns/latest/dg/sns-message-delivery-retries.html
Pros of Amazon SQS
- Easy to use, reliable62
- Low cost40
- Simple28
- Doesn't need to maintain it14
- It is Serverless8
- Has a max message size (currently 256K)4
- Triggers Lambda3
- Easy to configure with Terraform3
- Delayed delivery upto 15 mins only3
- Delayed delivery upto 12 hours3
- JMS compliant1
- Support for retry and dead letter queue1
- D1
Pros of WCF
- Classes5
Sign up to add or upvote prosMake informed product decisions
Cons of Amazon SQS
- Has a max message size (currently 256K)2
- Proprietary2
- Difficult to configure2
- Has a maximum 15 minutes of delayed messages only1