What is the recommended solace message size /range?

Options
ponnusamy
ponnusamy Member Posts: 2
edited April 2021 in General Discussions #1

Hello All, I understand that there is no straightforward answer for my question. I read the blog https://solace.com/blog/inside-a-solace-message-part-3-payload-data/ from Tom as well. I am trying to arrive standard/best practice/guardrails in my company so that the expectation is set right and the teams are conscious when they design the publishers. Of course, it depends on the source system that produces and the domain of the applications. To give an idea, in the current EMS majority of the payload size ranging from 10 KB to 1 MB. Maximum it goes to 5MB in very few use cases. Should I align towards the same? Kindly share your expert views.

Best Answer

  • nram
    nram Member, Employee Posts: 80 Solace Employee
    #2 Answer ✓
    Options

    Hi @ponnusamy , Since you already set the expectations for the answer, its easier to answer :-). The max-msg-size in the Queue/VPN is a means to protect the infrastructure from few misconfigured or misbehaving publishers hogging the resources and also to protect the consumer apps from dealing with unexpectedly large messages. This also allows any pass thru publishers (eg: republishers / connectors receiving message from external systems and publishing to downstream solace apps) get notified when unexpected large message flows thru them.
    If you are migrating the EMS apps to Solace and if you have seen max payload of 5MB in EMS, then it would seem natural to align with that in Solace as well.
    One thing to keep in mind is that very large messages do take more time in the processing pipeline. If you are designing your application for low latency requirements with mostly small messages, then it would make sense to reject large messages to improve the overall latency.

Answers

  • nram
    nram Member, Employee Posts: 80 Solace Employee
    #3 Answer ✓
    Options

    Hi @ponnusamy , Since you already set the expectations for the answer, its easier to answer :-). The max-msg-size in the Queue/VPN is a means to protect the infrastructure from few misconfigured or misbehaving publishers hogging the resources and also to protect the consumer apps from dealing with unexpectedly large messages. This also allows any pass thru publishers (eg: republishers / connectors receiving message from external systems and publishing to downstream solace apps) get notified when unexpected large message flows thru them.
    If you are migrating the EMS apps to Solace and if you have seen max payload of 5MB in EMS, then it would seem natural to align with that in Solace as well.
    One thing to keep in mind is that very large messages do take more time in the processing pipeline. If you are designing your application for low latency requirements with mostly small messages, then it would make sense to reject large messages to improve the overall latency.

  • ponnusamy
    ponnusamy Member Posts: 2
    Options

    Thank you @nram for your response. I think when the applications use Solace, truly for event driven architecture to exchange events , then the message size can very well be within the limits. Instead, if it is used just to exchanges message of large contents then that's when the problem comes.

  • Aaron
    Aaron Member, Administrator, Moderator, Employee Posts: 527 admin
    Options

    HI @ponnusamy ... Steve and I talked about this question a bit on my Office Hours (link)... thought you'd maybe like to see.