could you implement an "emergency brake" to be prepared in case of recursion? For example, store the groups that are read to be able to skip them. Not sure how likely this, but this big CAUTION makes me feel its reasonable ;)