Bird
Raised Fist0
GCPcloud~20 mins

Topics and subscriptions in GCP - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Pub/Sub Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ service_behavior
intermediate
2:00remaining
Message Delivery Behavior in Pub/Sub

In Google Cloud Pub/Sub, what happens if a subscriber does not acknowledge a message within the acknowledgement deadline?

AThe message is redelivered to the subscriber or another subscriber.
BThe message is moved to a dead-letter topic immediately.
CThe message is deleted and not delivered again.
DThe message is archived automatically without redelivery.
Attempts:
2 left
💡 Hint

Think about what happens when a message is not confirmed as received.

❓ Architecture
intermediate
2:00remaining
Designing Pub/Sub for Multiple Subscribers

You want to send the same messages to multiple independent services using Pub/Sub. Which setup ensures each service receives all messages independently?

ACreate one topic and multiple subscriptions, one per service.
BCreate one subscription and use message filters to route messages.
CCreate multiple topics, one per service, and one subscription per topic.
DCreate one topic and one subscription shared by all services.
Attempts:
2 left
💡 Hint

Remember that each subscription receives its own copy of messages.

❓ security
advanced
2:00remaining
Restricting Publisher Access to a Pub/Sub Topic

You want to allow only a specific service account to publish messages to a Pub/Sub topic. Which IAM role and policy setup achieves this?

AGrant the 'roles/pubsub.subscriber' role to the service account on the topic resource.
BGrant the 'roles/pubsub.publisher' role to the service account on the topic resource.
CGrant the 'roles/pubsub.editor' role to the service account on the project.
DGrant the 'roles/owner' role to the service account on the subscription.
Attempts:
2 left
💡 Hint

Think about the role that allows publishing messages.

❓ Configuration
advanced
2:00remaining
Configuring Dead-Letter Topics for Pub/Sub Subscriptions

Which configuration is required to enable a dead-letter topic for a Pub/Sub subscription?

ACreate a subscription on the dead-letter topic and link it to the original topic.
BEnable message retention on the topic and set a dead-letter policy on the subscription.
CSet the dead-letter topic in the subscription and specify the maximum delivery attempts.
DAssign the 'roles/pubsub.deadletterHandler' role to the subscription.
Attempts:
2 left
💡 Hint

Dead-letter topics require a policy on the subscription with delivery attempt limits.

✅ Best Practice
expert
2:00remaining
Optimizing Pub/Sub Subscription Acknowledgement Deadline

You have a subscriber processing messages that sometimes takes longer than the default acknowledgement deadline. What is the best practice to avoid message redelivery without losing messages?

ADisable acknowledgement to prevent message redelivery.
BIncrease the acknowledgement deadline to the maximum allowed value permanently.
CSet the acknowledgement deadline to the minimum and rely on message redelivery.
DUse the subscriber client to extend the acknowledgement deadline dynamically while processing.
Attempts:
2 left
💡 Hint

Think about how to handle variable processing times safely.

Practice

(1/5)
1. What is the main role of a topic in Google Cloud Pub/Sub?
easy
A. To authenticate users
B. To receive messages from subscribers
C. To store messages permanently
D. To send messages to subscribers

Solution

  1. Step 1: Understand the role of a topic

    A topic is where messages are sent or published by a publisher.
  2. Step 2: Differentiate topic from subscription

    Subscriptions receive messages from topics, not the other way around.
  3. Final Answer:

    To send messages to subscribers -> Option D
  4. Quick Check:

    Topic = message sender [OK]
Hint: Topics send; subscriptions receive messages [OK]
Common Mistakes:
  • Confusing topic as receiver instead of sender
  • Thinking topics store messages permanently
  • Mixing roles of topic and subscription
2. Which of the following is the correct way to create a subscription to a topic using gcloud CLI?
easy
A. gcloud pubsub subscriptions create my-sub --topic=my-topic
B. gcloud pubsub topics create my-sub --subscription=my-topic
C. gcloud pubsub subscriptions create my-topic --topic=my-sub
D. gcloud pubsub topics create my-topic --subscription=my-sub

Solution

  1. Step 1: Identify correct command syntax

    The command to create a subscription uses subscriptions create with the subscription name and --topic flag for the topic.
  2. Step 2: Verify gcloud pubsub subscriptions create my-sub --topic=my-topic matches syntax

    gcloud pubsub subscriptions create my-sub --topic=my-topic correctly uses gcloud pubsub subscriptions create my-sub --topic=my-topic.
  3. Final Answer:

    gcloud pubsub subscriptions create my-sub --topic=my-topic -> Option A
  4. Quick Check:

    Subscriptions create with --topic flag [OK]
Hint: Subscriptions created with 'subscriptions create' and --topic [OK]
Common Mistakes:
  • Using topics create instead of subscriptions create
  • Swapping topic and subscription names
  • Using --subscription flag instead of --topic
3. Given the following code snippet, what will be printed if the subscription receives a message?
from google.cloud import pubsub_v1

subscriber = pubsub_v1.SubscriberClient()
subscription_path = subscriber.subscription_path('my-project', 'my-sub')

def callback(message):
    print(f'Received: {message.data.decode()}')
    message.ack()

streaming_pull_future = subscriber.subscribe(subscription_path, callback=callback)
print('Listening for messages...')
medium
A. Only Listening for messages...
B. Only Received:
C. Listening for messages... followed by Received:
D. Error because callback is not called

Solution

  1. Step 1: Understand code flow

    The code subscribes to a topic and sets a callback to print received messages and acknowledge them.
  2. Step 2: Identify output behavior

    It prints 'Listening for messages...' immediately, then prints 'Received: ...' when a message arrives.
  3. Final Answer:

    Listening for messages... followed by Received: <message content> -> Option C
  4. Quick Check:

    Subscribe prints listening then message received [OK]
Hint: Callback prints message after initial listening print [OK]
Common Mistakes:
  • Assuming callback runs before print
  • Thinking no output until message arrives
  • Ignoring message acknowledgment
4. You created a subscription but messages are not being received. Which of the following is the most likely cause?
medium
A. The subscription is not attached to the correct topic
B. The topic does not exist
C. The subscription name is too long
D. The messages are too large

Solution

  1. Step 1: Check subscription-topic link

    If subscription is not linked to the right topic, it won't receive messages.
  2. Step 2: Evaluate other options

    Topic existence is important but usually creation fails if topic missing; name length or message size usually cause errors, not silent no messages.
  3. Final Answer:

    The subscription is not attached to the correct topic -> Option A
  4. Quick Check:

    Subscription-topic mismatch blocks messages [OK]
Hint: Check subscription's topic link first if no messages [OK]
Common Mistakes:
  • Ignoring subscription-topic association
  • Assuming message size silently blocks delivery
  • Thinking subscription name length causes no messages
5. You want to ensure that messages published to a topic are delivered to multiple independent services. Which setup should you use?
hard
A. Create multiple topics, one per service, and one subscription per topic
B. Create one topic and multiple subscriptions, one per service
C. Create one subscription and multiple topics linked to it
D. Create one topic and one subscription shared by all services

Solution

  1. Step 1: Understand message fan-out

    One topic can send messages to many subscriptions, allowing multiple services to receive independently.
  2. Step 2: Evaluate options

    Create one topic and multiple subscriptions, one per service uses one topic with multiple subscriptions, which is the recommended pattern for multiple independent consumers.
  3. Final Answer:

    Create one topic and multiple subscriptions, one per service -> Option B
  4. Quick Check:

    One topic, many subscriptions for multiple services [OK]
Hint: Use multiple subscriptions on one topic for multiple receivers [OK]
Common Mistakes:
  • Creating multiple topics unnecessarily
  • Using one subscription shared by all services
  • Linking subscriptions to multiple topics
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard