Open
Description
Google PubSub is a little bit different from Kinesis, Kafka, Pulsar.
First there are no way to manuallly handle partitions. The only way to control "which consumer gets what" is by having several topics.
Second, there are no real notion of offsets.
Instead, one can create and resume from snaphosts, or by publish timestamps.
Snapshots might be very difficult for us to use, as it would require an interaction between the indexer (downstream) and the source (upstream).
Using the timestamp as a checkpoint should be ok.
TLDR:
We can ack message right away, store timestamps as checkpoints, and seek to timestamp when we restart the source.