I was looking at trying to fix AIRFLOW-137 (max_active_runs not respected), but quickly noticed that the code that does all the scheduling is rather complex with state updates going on across multiple source files in multiple threads, etc.
It's then best to find a suitable way to visualize all this complexity, so I built this state change diagram: https://docs.google.com/spreadsheets/d/1vVvOwfDSacTC_YzwUkOMyykP6LiipCeoW_V70PuFrN4/edit?usp=sharing The state changes represent a potential execution path where the state for a task instance will be updated to that value. Backfill is not considered in this diagram. States for dagruns/jobs/dags are also not considered. Could be useful for someone else. Rgds, Gerard
