Я хочу хранить данные о событиях IoT в облачном хранилище Google, которое будет использоваться в качестве озера данных. Но делать вызов PUT для каждого события слишком дорого, поэтому я хочу добавить в файл, а затем выполнять вызов PUT в час. Как это сделать без потери данных в случае отказа узла в моей службе обработки сообщений?
Потому что, если моя служба обработки подтвердит сообщение, сообщение больше не будет в Google Pub/Sub, но также еще не будет в Google Cloud Storage, и в этот момент, если этот узел обработки выйдет из строя, я потеряю данные.
Мое желаемое использование аналогично этому сообщению, в котором говорится об использовании AWS Kinesis Firehose для пакетной обработки сообщений перед размещением в S3, но даже максимальный интервал пакетной обработки Kinesis Firehose составляет всего 900 секунд (или 128 МБ): https://aws.amazon.com/blogs/big-data/persist-streaming-data-to-amazon-s3-using-amazon-kinesis-firehose-and-aws-lambda/