Я постараюсь ответить на некоторые ваши вопросы, дайте мне знать, если я неправильно понял, что вы спрашиваете.
1) Я полагаю, что вы спрашиваете о том, как обеспечить порядок сообщений, чтобы старое обновление не перекрывало более новое. Есть поле «publish_time» сообщения (https://cloud.google.com/pubsub/docs/reference/rpc/google.pubsub.v1#google.pubsub.v1.PubsubMessage) для координации на основе времени, когда облачный сервер pubsub получил ваш запрос на публикацию. Если вы хотите координировать на основе какого-либо другого времени или механизма упорядочения, вы можете добавить атрибут к ваше PubsubMessage или полезная нагрузка для этого.
2) Кажется, это общая проблема синхронизации, не обязательно связанная с облачным pubsub; Я оставлю это другим, чтобы ответить.
3) Облачный поток данных реализует механизм управления окнами и водяными знаками, аналогичный тому, что вы описываете. Возможно, вы могли бы использовать это для удаления конфликтующих обновлений и выполнения предварительной обработки перед записью их в резервное хранилище.
https://beam.apache.org/documentation/programming-guide/#windowing
-Daniel