I'm interested in using ZooKeeper to provide a distributed producer/consumer queue for my distributed application.
Of course I've been studying the recipes provided for queues, barriers, etc... My question is: how can I prevent packets of work from being lost if a process crashes? For example, following the distributed queue recipe, when a consumer takes an item from the queue, it removes the first "item" znode under the "queue" znode. But, if the consumer immediately crashes after removing the item from the queue, that item is lost. Is there a recipe or recommended approach to ensure that no queue items are lost in the event of process failure? Thanks!