It would seem like we are using the wrong data structure in our Atomic if we want this behavior? array blocking queue or something would have this wrapped up. We have had this pattern elsewhere, it seems like an odd one to be replicating and not factoring out/killing.  Would an immutable Vector maybe not be a suitable substitute here?