To guarantee messages are received by the service in the same order that the application gives them to a publisher, the client library needs to wait until a batch of messages is successfully delivered before sending the next batch, otherwise batches may arrive out of order as there is no guarantee the same channel or network path is used for each batch.
For applications that do not care about message ordering, this can limit the throughput. Therefore, the behavior is disabled by default.
See Also
the documentation for the Publisher class for details.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-14 UTC."],[[["\u003cp\u003eThe latest available version is 2.37.0-rc, with a range of previous versions listed down to 2.11.0 for the \u003ccode\u003eMessageOrderingOption\u003c/code\u003e in the Google Cloud Pub/Sub C++ library.\u003c/p\u003e\n"],["\u003cp\u003eMessage ordering in the \u003ccode\u003ePublisher\u003c/code\u003e is disabled by default to maximize throughput when the application does not require messages to be received in the same order as sent.\u003c/p\u003e\n"],["\u003cp\u003eTo ensure message ordering, the client library must wait for a batch of messages to be successfully delivered before sending the next, as there's no guarantee of a consistent delivery path for each batch.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eMessageOrderingOption\u003c/code\u003e is an alias of type \u003ccode\u003ebool\u003c/code\u003e and its documentation is part of a wide collection of versioned documentation.\u003c/p\u003e\n"]]],[],null,[]]