What is message retention in Google Cloud Pub/Sub?
Message retention is the time period during which Pub/Sub keeps a message available for delivery, even if it has been acknowledged. This allows subscribers to receive messages that were published before they subscribed or to reprocess messages if needed.
Click to reveal answer
beginner
What does acknowledging a message mean in Pub/Sub?
Acknowledging a message means telling Pub/Sub that the message has been successfully received and processed. Once acknowledged, Pub/Sub stops delivering that message to the subscriber.
Click to reveal answer
intermediate
How long is the default message retention period in Pub/Sub?
By default, Pub/Sub retains unacknowledged messages for 7 days. This means messages can be redelivered within this time if not acknowledged.
Click to reveal answer
intermediate
What happens if a subscriber does not acknowledge a message within the ack deadline?
If a message is not acknowledged within the ack deadline (default 10 seconds), Pub/Sub considers it unacknowledged and will redeliver it to the same or another subscriber.
Click to reveal answer
advanced
How can you extend the time a subscriber has to acknowledge a message?
Subscribers can modify the ack deadline by sending a ModifyAckDeadline request to extend the time before the message is redelivered, allowing more time to process the message.
Click to reveal answer
What does acknowledging a message in Pub/Sub do?
AExtends the message retention period
BStops redelivery of that message
CDeletes the message from the topic
DPublishes a new message
✗ Incorrect
Acknowledging a message tells Pub/Sub that the message was processed successfully and should not be redelivered.
What is the default ack deadline for a message in Pub/Sub?
A60 seconds
B5 seconds
C30 seconds
D10 seconds
✗ Incorrect
The default ack deadline is 10 seconds, after which unacknowledged messages are redelivered.
How long does Pub/Sub retain unacknowledged messages by default?
A1 day
B3 days
C7 days
D30 days
✗ Incorrect
Pub/Sub retains unacknowledged messages for 7 days by default.
What happens if a message is not acknowledged before the ack deadline?
AIt is redelivered
BIt is sent to a dead-letter queue automatically
CIt is archived
DIt is deleted permanently
✗ Incorrect
If not acknowledged in time, the message is redelivered to subscribers.
Which method allows a subscriber to extend the ack deadline?
AmodifyAckDeadline
BextendMessageRetention
CacknowledgeMessage
DrenewSubscription
✗ Incorrect
The modifyAckDeadline method lets subscribers extend the time to acknowledge a message.
Explain how message retention and acknowledgment work together in Google Cloud Pub/Sub.
Think about how Pub/Sub ensures messages are not lost and are processed at least once.
You got /4 concepts.
Describe what happens when a subscriber does not acknowledge a message within the ack deadline.
Focus on the flow of message delivery and retry.
You got /4 concepts.
Practice
(1/5)
1. What happens to a message in Google Cloud Pub/Sub if it is not acknowledged within the retention period?
easy
A. The message is automatically acknowledged.
B. The message is deleted and no longer available for delivery.
C. The message is moved to a dead-letter queue.
D. The message is duplicated and sent again.
Solution
Step 1: Understand message retention
Message retention defines how long unacknowledged messages are kept before deletion.
Step 2: Effect of no acknowledgment within retention
If a message is not acknowledged before retention expires, it is deleted and lost.
Final Answer:
The message is deleted and no longer available for delivery. -> Option B
Hint: Unacknowledged messages expire and get deleted after retention [OK]
Common Mistakes:
Thinking messages auto-acknowledge after retention
Assuming messages move to dead-letter queue automatically
Believing messages duplicate on retention expiry
2. Which of the following is the correct way to acknowledge a message in Google Cloud Pub/Sub client libraries?
easy
A. Call message.ack() after processing the message.
B. Call message.delete() to remove the message.
C. Call message.complete() to finish processing.
D. Call message.finish() to acknowledge.
Solution
Step 1: Identify acknowledgment method
In Pub/Sub client libraries, acknowledging a message is done by calling ack() on the message object.
Step 2: Verify other options
Methods like delete(), complete(), or finish() are not valid for acknowledgment.
Final Answer:
Call message.ack() after processing the message. -> Option A
Quick Check:
Use message.ack() to acknowledge [OK]
Hint: Use message.ack() to confirm message processed [OK]
Common Mistakes:
Using incorrect method names like delete or finish
Not acknowledging messages at all
Confusing acknowledgment with message deletion
3. Consider this code snippet using Google Cloud Pub/Sub subscriber client:
def callback(message):
print(f"Received: {message.data.decode('utf-8')}")
# No acknowledgment called here
subscriber.subscribe(subscription_path, callback=callback)
What will happen to the messages if the callback never calls message.ack()?
medium
A. Messages will be acknowledged automatically after printing.
B. Messages will be lost immediately after printing.
C. Messages will be redelivered until acknowledged or retention expires.
D. Messages will be sent to a dead-letter topic instantly.
Solution
Step 1: Understand callback behavior without ack
If message.ack() is not called, Pub/Sub considers the message unacknowledged.
Step 2: Effect on message delivery
Unacknowledged messages are redelivered repeatedly until acknowledged or retention period expires.
Final Answer:
Messages will be redelivered until acknowledged or retention expires. -> Option C
Quick Check:
No ack means redelivery until retention ends [OK]
Hint: No ack means message redelivery until retention ends [OK]
Common Mistakes:
Assuming messages auto-acknowledge after callback
Thinking messages are lost immediately without ack
Believing messages go to dead-letter topic without config
4. You have set a message retention duration of 7 days on your Pub/Sub subscription. However, messages are disappearing after 1 day. What is the most likely cause?
medium
A. Messages are being acknowledged by the subscriber before 1 day.
B. The retention duration setting is ignored by Pub/Sub.
C. The subscription is a push type and does not support retention.
D. Messages are automatically deleted after 24 hours regardless of settings.
Solution
Step 1: Check retention vs acknowledgment
Retention controls how long unacknowledged messages stay. If messages are acknowledged, they are removed immediately.
Step 2: Analyze disappearance cause
If messages disappear early, likely they were acknowledged by the subscriber before 1 day.
Final Answer:
Messages are being acknowledged by the subscriber before 1 day. -> Option A
Quick Check:
Acknowledged messages removed before retention ends [OK]
Believing push subscriptions don't support retention
Thinking messages auto-delete after 24 hours always
5. You want to ensure that messages in your Pub/Sub subscription are retained for 3 days even if they are not acknowledged, but also want to avoid message duplication after acknowledgment. Which configuration should you apply?
hard
A. Set message retention duration to 0 and rely on subscriber retries.
B. Set message retention duration to 3 days and disable acknowledgments.
C. Set message retention duration to 7 days and never acknowledge messages.
D. Set message retention duration to 3 days and ensure subscriber acknowledges messages promptly.
Solution
Step 1: Understand retention and acknowledgment roles
Retention keeps unacknowledged messages for specified time. Acknowledgment removes messages to avoid duplicates.
Step 2: Choose configuration to meet goals
Setting retention to 3 days keeps messages if unacknowledged. Prompt acknowledgment removes processed messages, preventing duplicates.
Final Answer:
Set message retention duration to 3 days and ensure subscriber acknowledges messages promptly. -> Option D
Quick Check:
Retention + prompt ack = no duplicates, messages kept [OK]
Hint: Retention keeps unacked; ack removes to prevent duplicates [OK]
Common Mistakes:
Disabling acknowledgments causing duplicates
Setting retention to 0 losing unacked messages quickly
Never acknowledging causing message buildup and duplicates
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.