> Какие гарантии доставки сообщений предоставляет Google Pub/Sub? (Go)

Уровень: senior · Роль: backend · Язык: Go · Категория: Технические вопросы

Компании: InDrive

Стек: Go

> Пример ответа

Google Pub/Sub гарантирует at-least-once delivery (доставку как минимум один раз) для каждого опубликованного сообщения. Это означает, что сообщение может быть доставлено подписчику более одного раза, но ни одно сообщение не будет потеряно.

Основные механизмы:

  • Persistent storage: Сообщения хранятся в распределенном хранилище до подтверждения получения (ack) от подписчика. Если ack не получен в течение срока подтверждения (ack deadline), сообщение повторно доставляется.
  • Exactly-once processing (опционально): При использовании потоков подписки (subscription with exactly-once delivery) Pub/Sub гарантирует, что каждое сообщение будет обработано ровно один раз, но это требует идемпотентности со стороны подписчика.
  • Ordering: По умолчанию порядок не гарантируется, но можно включить упорядоченную доставку (ordering key) для сообщений с одинаковым ключом.

В Go-приложении это реализуется через sub.Receive(): сообщение автоматически подтверждается после успешной обработки, иначе оно будет повторно отправлено.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью