This is a working document to clarify proposal option number 2 originally presented in AIP-83 amendment to support classic Airflow authoring style.
And what about dags that are asset-or-schedule?
Logical date is the default sort field currently. Start date would be a natural candidate when no logical date. But it is not populated initially.
One proposal is to add a run_after field. This concept already exists in timetables. But it is not persisted to the dag run record.
Alternatively we could do coalesce(logical_date, start_date, updated_at)
The question must be answered for both manual runs and asset-triggered.
There is still a unique constraint on run_id. Currently it is generated deterministically from logical date plus run type. What should we do for runs with no logical date? How can we support the use case with many runs triggered in close succession such that perhaps even utcnow() would collide. What shall we do?