Choosing Pub/Sub or Cloud Tasks

Both Cloud Tasks and Pub/Sub can be used to implement message passing and asynchronous integration. Although they are conceptually similar, each is designed for different set of use cases. This page helps you choose the right product for your use case.

Key Differences

The core difference between Pub/Sub and Cloud Tasks is in the notion of implicit vs. explicit invocation.

Pub/Sub aims to decouple publishers of events and subscribers to those events. Publishers do not need to know anything about their subscribers. Therefore, Pub/Sub gives publishers no control over the delivery of the messages save for the guarantee of delivery. In this way, Pub/Sub supports implicitinvocation: a publisher implicitly causes the subscribers to execute by publishing an event.

By contrast, Cloud Tasks is aimed at explicitinvocation where the publisher retains full control of execution. In particular, a publisher specifies an endpoint where each message is to be delivered.

Overall Cloud Tasks are appropriate for use cases where a task producer needs to defer or control the execution timing of a specific webhook or remote procedure call. Pub/Sub is optimal for more general event data ingestion and distribution patterns where some degree of control over execution can be sacrificed.

Detailed feature comparison

Feature Cloud Tasks Pub/Sub
Push using webhooks
Yes Yes
At-least-once delivery guarantee
Yes Yes
Configurable retries
Yes Yes
Task/message creation deduplication
Yes No
Scheduled delivery
Yes No
Ordered delivery
No, enqueued task order is preserved on a best‑effort basis Yes, with ordering keys
Explicit rate controls
Yes Pull subscriber clients can implement flow control
Pull using API
No Yes
Batch insert
Yes Yes
Multiple handlers/subscribers per message
No Yes
Task/message retention
31 days Up to 31 days
Maximum size of task/message
1MB 10MB
Maximum delivery rate
500 QPS/queue No upper limit, subject to regional throughput quotas
Geographic availability
Regional Global
Maximum push handler/subscriber processing duration
30 minutes (HTTP)
10 minutes (App Engine Standard automatic scaling)
24 hours (App Engine Standard manual or basic scaling)
60 minutes (App Engine Flexible)
10 minutes for push operations
Number of queues/subscriptions
1,000 per project per region, more available through quota increase request 10,000 per project
Create a Mobile Website
View Site in Mobile | Classic
Share by: