Need advice about which tool to choose?Ask the StackShare community!
Amazon SQS vs ejabberd: What are the differences?
Amazon SQS: Fully managed message queuing service. Transmit any volume of data, at any level of throughput, without losing messages or requiring other services to be always available. With SQS, you can offload the administrative burden of operating and scaling a highly available messaging cluster, while paying a low price for only what you use; ejabberd: A scalable and robust instant messaging server. It is a distributed, fault-tolerant technology that allows the creation of large-scale instant messaging applications. The server can reliably support thousands of simultaneous users on a single node and has been designed to provide exceptional standards of fault tolerance.
Amazon SQS and ejabberd belong to "Message Queue" category of the tech stack.
Some of the features offered by Amazon SQS are:
- A queue can be created in any region.
- The message payload can contain up to 256KB of text in any format. Each 64KB ‘chunk’ of payload is billed as 1 request. For example, a single API call with a 256KB payload will be billed as four requests.
- Messages can be sent, received or deleted in batches of up to 10 messages or 256KB. Batches cost the same amount as single messages, meaning SQS can be even more cost effective for customers that use batching.
On the other hand, ejabberd provides the following key features:
- Cross-platform
- Administrator-friendly
- Internationalized
ejabberd is an open source tool with 4.18K GitHub stars and 1.25K GitHub forks. Here's a link to ejabberd's open source repository on GitHub.
Medium, Lyft, and Coursera are some of the popular companies that use Amazon SQS, whereas ejabberd is used by AppScale Systems, KongHack Inc., and UrbanClap. Amazon SQS has a broader approval, being mentioned in 497 company stacks & 402 developers stacks; compared to ejabberd, which is listed in 5 company stacks and 3 developer stacks.
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, reliable60
- Low cost39
- Simple27
- Doesn't need to maintain it13
- It is Serverless8
- Has a max message size (currently 256K)4
- Easy to configure with Terraform3
- Triggers Lambda3
- Delayed delivery upto 15 mins only3
- Delayed delivery upto 12 hours3
- JMS compliant1
- Support for retry and dead letter queue1
- D1
Pros of ejabberd
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