3 ms·
Very interesting! I'm working on a similar project at the moment, but I haven't come across Onyx at all before -- I'll start digging through. In particular, I'
by bkirwi 12y ago
Very interesting! I'm working on a similar project at the moment, but I haven't come across Onyx at all before -- I'll start digging through.
In particular, I'm interested to know if this supports exactly-once messaging semantics, and if so, what the implementation looks like. Anyone here have experience with this?
- XPherior 12y agoI'm not sure if exactly-once messaging is possible in a distributed system. Onyx gets close in that it uses transactions to move data across queues atomically. But code can fail just before a transaction is committed. The transaction will only be committed once, but the code leading up to the transaction will be run twice. Is that really exactly-once? IMO, it's not.
- bkirwi 12y agoRight: I guess I distinguish between exactly-once _messaging_ and exactly-once _processing_. it doesn't seem possible to guarantee that the code will be run exactly once, but you can promise that the outputs are made visible exactly once... as long as your system can capture the relevant outputs, of course. It seems like transactions ought to be enough for the latter -- I'll have a look. Thanks!