in cassovary-core/src/main/scala/com/twitter/cassovary/graph/Traverser.scala [104:122]
def next() = {
val nextNodeId = if (currNode == null ||
(maxDepth.isDefined && pathLength >= maxDepth.get)) {
goHome()
} else {
val randNextNodeId = takeRandomStep()
if (onlyOnce && seenBefore(randNextNodeId)) {
seenNodesTracker.clear()
goHome()
} else {
randNextNodeId
}
}
seenNodesTracker.recordInfo(nextNodeId, false)
pathLength += 1
currNode = getExistingNodeById(graph, nextNodeId)
currNode
}