The maximum number of outstanding messages per streaming pull.
The Cloud Pub/Sub C++ client library uses streaming pull requests to receive messages from the service. The service will stop delivering messages if this many messages or more have neither been acknowledged nor rejected.
If a negative or 0 value is supplied, the number of messages will be unlimited.
Example
namespace pubsub = ::google::cloud::pubsub;
using ::google::cloud::future;
using ::google::cloud::Options;
using ::google::cloud::StatusOr;
auto sample = [](std::string project_id, std::string subscription_id) {
// Change the flow control watermarks, by default the client library uses
// 0 and 1,000 for the message count watermarks, and 0 and 10MiB for the
// size watermarks. Recall that the library stops requesting messages if
// any of the high watermarks are reached, and the library resumes
// requesting messages when *both* low watermarks are reached.
auto constexpr kMiB = 1024 * 1024L;
auto subscriber = pubsub::Subscriber(pubsub::MakeSubscriberConnection(
pubsub::Subscription(std::move(project_id), std::move(subscription_id)),
Options{}
.set<pubsub::MaxOutstandingMessagesOption>(1000)
.set<pubsub::MaxOutstandingBytesOption>(8 * kMiB)));
auto session = subscriber.Subscribe(
[](pubsub::Message const& m, pubsub::AckHandler h) {
std::move(h).ack();
std::cout << "Received message " << m << "\n";
PleaseIgnoreThisSimplifiesTestingTheSamples();
});
return std::make_pair(subscriber, std::move(session));
};
[[["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 \u003ccode\u003eMaxOutstandingMessagesOption\u003c/code\u003e documentation is version 2.37.0-rc, with a list of older versions available for reference.\u003c/p\u003e\n"],["\u003cp\u003eThis option controls the maximum number of unacknowledged or unrejected messages the Cloud Pub/Sub C++ client library will receive via streaming pull requests, with message delivery stopping if this limit is reached.\u003c/p\u003e\n"],["\u003cp\u003eSupplying a negative or zero value for \u003ccode\u003eMaxOutstandingMessagesOption\u003c/code\u003e means that there will be no limit to the number of messages that can be outstanding.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eMaxOutstandingMessagesOption\u003c/code\u003e is used in the example to set the message count watermarks to 1000, which controls when the library will stop requesting new messages.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eMaxOutstandingMessagesOption\u003c/code\u003e is defined as an alias of the \u003ccode\u003estd::int64_t\u003c/code\u003e data type.\u003c/p\u003e\n"]]],[],null,[]]