Nevado JMS

a Skyscreamer project


Performance

Nevado adds less than 100 micro-seconds to each send/receive operation, so performance is purely determined by AWS, your network, and the AWS SDK. Here are some tests we ran. Your mileage may vary.

Message SizeThreadsSend (msg/sec)Receive (msg/sec)
1 kb15138
1 kb29365
1 kb4197145
40 kb11423
40 kb22741
40 kb45793

Performance is comparable to ActiveMQ in persistent mode. It's good for load distribution, but it's not a Ferrari. If you are looking to handle thousands of messages per second, you'll either need to scale over many servers, or run your own queueing solution.

Nevado is ideal for starting a new solution that needs to grow over time. If you need to change in the future, you can always switch to another JMS provider without changing your client code.

Message Size

SQS imposes a message body maximum of 64k. Due to message serialization, this means an object upper-limit of 48k in Nevado. If you need larger payloads than this, we recommend that you store the payload in an external store like DynamoDB and use Nevado JMS to pass identifiers to the data. Smaller messages also improve performance.