Deno Queues guarantees at-least-once delivery. […] the runtime will automatically retry to call the handler again until it succeeds or until maximum retry attempts are reached. If maximum attempts (current default is 5) are reached, the message will be dropped.
Not so at-least-once then?
Also, no mention of ordering guarantees, so eventual consistency will be trickier to implement in some cases.
Anyway, looks rather handy, and the transactional emits are a very nice plus over typical solutions. We’ve been doing event outbox at $WORKPLACE to great effect.
I had a poke around to figure out how the local SQLite version of this works - here are my notes on the schema and SQL queries they use: https://til.simonwillison.net/deno/deno-kv#user-content-deno-queues-27th-september-2023
Thanks! I was curious how their SQLite use compared to what I do in my tiny queue system (nightcoral) but I gave up trying to find a link to the code.
Not so at-least-once then?
Also, no mention of ordering guarantees, so eventual consistency will be trickier to implement in some cases.
Anyway, looks rather handy, and the transactional emits are a very nice plus over typical solutions. We’ve been doing event outbox at $WORKPLACE to great effect.