This is strange that use an `AtomicInteger` for `totalTaskCount` but we don't worry about `pendingTasks`. `totalTaskCount` can be a simple volatile `Int`. Please add a comment about the fact that the Feeder's `peek`, `next` and `ack` methods are invoked from a single SPNL thread. I'll do the same for persistent implementation.