My feeling is that this is a rather technical solution to fix people’s bad habits.
In other languages, the fix would have been a linter that prevents you from creating jobs that run a loop, unless the only thing done within that loop was to create child jobs.
I don’t think of this as covering up bad habits so much as a new tool to help with tasks that need to be accomplished serially. A long running data migration or backfill, for example.
I have had to do this many times and while it’s not a huge deal to structure jobs to avoid the dreaded long running job, it’s nice to have the pattern ensconced in the library and not require rebuilding at every new app and/or educating engineers on how to do it.
My feeling is that this is a rather technical solution to fix people’s bad habits. In other languages, the fix would have been a linter that prevents you from creating jobs that run a loop, unless the only thing done within that loop was to create child jobs.
I don’t think of this as covering up bad habits so much as a new tool to help with tasks that need to be accomplished serially. A long running data migration or backfill, for example.
I have had to do this many times and while it’s not a huge deal to structure jobs to avoid the dreaded long running job, it’s nice to have the pattern ensconced in the library and not require rebuilding at every new app and/or educating engineers on how to do it.