I think I have spotted a bug in the HiLo implementation.
When the bucket has reached its limit, a new last source value is retrieved from the HiLo table.
The upper limit is then set, but the current value is never set to the new bucket start value.
This means that if there is more than one process using the same HiLo sequence, the HiLo values could start overlapping.
//SHOULD SET generationState.value HERE