I'm floored by this. Last I spoke with that team the response was a few (but not everyone) in leadership getting it and everyone else asking why we would care. How far to come. GCP just got substantially more interesting. Edit: by this I only mean to say well done to the Google team.
By the way, in addition to ordered messages, Pub/Sub has recently gotten a number of new features including message filtering, dead letter queues, and retry policy (some GA, some beta). You can find out more here: https://cloud.google.com/pubsub/docs/release-notes Disclaimer: I work on Pub/Sub
Google pub/sub released an ordering feature
31–40 of 114 posts
Re: Google pub/sub released an ordering feature
#32Earlier quoted context omitted.
Consider processing two events without guaranteed ordering: - Create A - Delete A In one ordering, A is created and then deleted as expected, in the other, the delete fails but then A is created and remains.
Does adding timestamps not handle this case?
Re: Google pub/sub released an ordering feature
#33Earlier quoted context omitted.
I don't believe I advocated for the use of Cassandra. Owning vs being owned by, we are not arguing about the same things. Stances are not strategies, when we use another's API we form a bond but the the other is free to break it so we are automatically at a weaker position. We have acquiesced. But if we choose a strategically worse choice, we have not only acquiesced, but done self-harm.
I understand. I’m just saying that in my my professional experience, nothing good came out of religously avoiding lock-in but the opposite.
Otherwise, eg, FOSS is "nothing good".
Re: Google pub/sub released an ordering feature
#34Earlier quoted context omitted.
And do messages without an ordering key incur the same overhead?
In the unordered case, there should be no noticeable performance degradation. This was something that we looked into extensively from both the server side as well as with our client libraries. Disclaimer: I work on Pub/Sub.
Re: Google pub/sub released an ordering feature
#35Earlier quoted context omitted.
Consider processing two events without guaranteed ordering: - Create A - Delete A In one ordering, A is created and then deleted as expected, in the other, the delete fails but then A is created and remains.
There are a couple of options without needing guaranteed ordering: - jobs can have ever increasing ids, workers record the last seen id in one place, and ignore jobs with ids less than last seen - job results are returned for each job to a supervisor. if a job result doesn't match current expected state, resend job. jobs should be idempotent in case a job is sent multiple times If the create job is expensive, the lat…
Much easier to just have strict order and process it off the line as it comes.
Re: Google pub/sub released an ordering feature
#36Head of line blocking as a service!
Seriously, I can't shake the feeling that most people who want this are likely very, very wrong and that this "feature" will turn out to be a footgun and a trap more often than a sniper rifle...
This is exactly like Kafk, Pulsar, AWS Kinesis, Azure Eventhubs, and many others which are all being used by thousands of applications without issue.
Re: Google pub/sub released an ordering feature
#37Earlier quoted context omitted.
Consider processing two events without guaranteed ordering: - Create A - Delete A In one ordering, A is created and then deleted as expected, in the other, the delete fails but then A is created and remains.
There are a couple of options without needing guaranteed ordering: - jobs can have ever increasing ids, workers record the last seen id in one place, and ignore jobs with ids less than last seen - job results are returned for each job to a supervisor. if a job result doesn't match current expected state, resend job. jobs should be idempotent in case a job is sent multiple times If the create job is expensive, the lat…
Re: Google pub/sub released an ordering feature
#38Re: Google pub/sub released an ordering feature
#39Re: Google pub/sub released an ordering feature
#40Earlier quoted context omitted.
Does adding timestamps not handle this case?
If events are generated by different processes you cannot really guarantee that time is exactly the same for them, unless you do something fancy to ensure that.