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 version of the documentation available is 2.37.0-rc, with previous versions ranging down to 2.11.0 also accessible.\u003c/p\u003e\n"],["\u003cp\u003eThe content focuses on \u003ccode\u003eMessageOrderingOption\u003c/code\u003e within the Google Cloud Pub/Sub C++ library, which deals with the order in which messages are processed and received.\u003c/p\u003e\n"],["\u003cp\u003eMessage ordering is disabled by default, because enabling it can limit throughput as the client library needs to wait for each message batch to be successfully delivered before sending the next.\u003c/p\u003e\n"],["\u003cp\u003eMessage ordering guarantees messages are received by the service in the same order they were provided to the publisher by the application.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003ePublisher\u003c/code\u003e class documentation provides more details about message ordering.\u003c/p\u003e\n"]]],[],null,[]]