Just to clarify - "directed acyclic graph" is the tongue-twister,

On Tue, Oct 22, 2024 at 5:29 PM Jarek Potiuk <ja...@potiuk.com> wrote:

> I like what both Daniel and Brent wrote. I would very much want to be able
> to say just "dag" without explaining it further.
>
> For me every time I explain "DAG" at a talk it's a tongue-twister, and I
> almost stutter on trying to recall how to pronounce it properly.
>
> J.
>
>
> On Tue, Oct 22, 2024 at 5:27 PM Brent Bovenzi <br...@astronomer.io.invalid>
> wrote:
>
>> I remember we explored renaming "DAG" when starting on AIP-38 to modernize
>> the UI. Both "pipeline" or "workflow" are more descriptive of what one is
>> actually doing while Directed Acyclic Graph is an implementation detail.
>> But I agree with Daniel Standish, at this point "DAG" has become "dag" , a
>> word in its own right.
>>
>> Examples for "dag" are abound in community discussion, Airflow Summit
>> talks, documentation and even in the UI. Let's embrace "dag". A user just
>> needs to learn one new word vs the technical concept behind that word. I
>> think that is much less effort than refactoring so much code,
>> documentation, blog posts, stack overflow questions, etc.
>>
>> On Tue, Oct 22, 2024 at 10:51 AM Daniel Standish
>> <daniel.stand...@astronomer.io.invalid> wrote:
>>
>> > I am skeptical.  Seems like introducing a lot of pain for questionable
>> > benefit.  But, I am def sympathetic to the idea.  I agree the
>> association
>> > with "directed acyclic graph" is not helpful.
>> >
>> > And along those lines, I offer here some less invasive mitigations.
>> >
>> > One thing we can do no matter what is to de-emphasize the math nerd
>> origins
>> > of the name.  That is to say, in docs / website / etc, *never define*
>> > airflow's "dag" concept as a directed acyclic graph.  Always define it
>> as a
>> > pipeline, collection of tasks, workflow etc.
>> >
>> > The "directed acyclic graph" part of it is like a historical footnote,
>> and
>> > we could make one mention of it somewhere hidden.
>> >
>> > We could also start using lowercase in the docs in general e.g. writing
>> > "dag" / "dags" instead of writing "DAG" / "DAGs" etc.  The upper case
>> part
>> > of it makes it look like an acronym; but "dag" in airlfow is just an
>> > airflow concept and the association with "DAGs" is not really unhelpful.
>> >
>> > In other words embrace that "dag" in airflow is its own thing, is
>> > *not* strictly
>> > speaking a directed acyclic graph (which nobody knows about anyway), and
>> > tell them what it is in simple terms that normal people understand.
>> >
>> >
>> > On Tue, Oct 22, 2024 at 7:27 AM Jarek Potiuk <ja...@potiuk.com> wrote:
>> >
>> > > DAG is so embedded into what we do that it will be extremely
>> difficult to
>> > > get rid of it completely. Also I think it will make a lot of "google"
>> > > searches and "stack overflow" searches not finding the right answers.
>> > This
>> > > is one of the strengths of Airflow - besides the community and ideas
>> that
>> > > Bernd mentioned - is the vast number of examples, problems and
>> solutions
>> > > you can so easily find (and we have to remember that all the AI
>> trained
>> > on
>> > > past data will be also rather poorly matching queries of people.
>> > >
>> > > I am not too attached to DAG. I could easily switch. And if we do - I
>> > > would be for using workflow or pipeline instead of `dag` if not the
>> above
>> > > reason, but I think I am here with Igor that it might cause more
>> problems
>> > > than it solves.
>> > >
>> > > But I am not 100% against - if others will think it's a good idea, I
>> am
>> > ok
>> > > with it.
>> > >
>> > > J,
>> > >
>> > >
>> > > On Tue, Oct 22, 2024 at 3:12 PM Abhishek Bhakat
>> > > <abhishek.bha...@astronomer.io.invalid> wrote:
>> > >
>> > > > Agreed that the word DAG makes very less sense to someone new to
>> > workflow
>> > > > orchestration. But it does also show the nature of being acyclic.
>> Sure,
>> > > as
>> > > > Bas mentioned, there are ways to workaround it. Still, in my
>> opinion,
>> > > there
>> > > > is generally no need for cyclic behavior in workflow orchestration.
>> > Most
>> > > > (*if
>> > > > not all*) cases can be in some way can be covered using an acyclic
>> > manner
>> > > > with multiple runs. Hence, the idempotency. So I would want the
>> > "acyclic"
>> > > > word to stick.
>> > > >
>> > > > Regards,
>> > > > Avi
>> > > >
>> > > > On Tue, Oct 22, 2024 at 12:41 PM <bernd.stroe...@kosakya.de> wrote:
>> > > >
>> > > > > Brilliant, I am on the way to become an Airflow Fan; so many new
>> > ideas.
>> > > > >
>> > > > > The Term DAG is misleading; it should be replaced by the more
>> general
>> > > > Term
>> > > > > Airflow (Workflow) Graph (AFG) or Airflow (Petri) Net (AFN) (maybe
>> > > > without
>> > > > > a direction);
>> > > > > and ... these Graphs should be stored in a Graph Database.
>> > > > >
>> > > > > Every Node or Sup-Graph of an Airflow Graph (AFG) might be
>> assigned
>> > to
>> > > an
>> > > > > executable (Python-, Rust-, ... ) member of a library.
>> > > > >
>> > > > > A running Graph might have a different structure than a
>> configuration
>> > > > > Graph.
>> > > > >
>> > > > > Forget that if you think it's bullshit.
>> > > > >
>> > > > > Best Regards
>> > > > >
>> > > > > Bernd Ströhle
>> > > > > M: +49 171 5357916
>> > > > > E: bernd.stroe...@gmail.com
>> > > > >
>> > > > >
>> > > > > -----Original Message-----
>> > > > > From: Igor Kholopov <ikholo...@google.com.INVALID>
>> > > > > Sent: Tuesday, October 22, 2024 12:02 PM
>> > > > > To: dev@airflow.apache.org
>> > > > > Subject: Re: Airflow should deprecate the term "DAG" for end users
>> > > > >
>> > > > > Even though the term "DAG" is clearly suboptimal, it is part of
>> > Airflow
>> > > > > DAG definition interface at so many levels, that any attempt to
>> > change
>> > > it
>> > > > > will only introduce more chaos, not reduce it. The only thing
>> that is
>> > > > worse
>> > > > > than a poorly chosen name in the code is when there are two ways
>> to
>> > > > define
>> > > > > the same thing. Countless articles and tutorials will suddenly
>> become
>> > > > > confusing as they all refer to workflows as "DAG"s.
>> > > > >
>> > > > > We are already at risk of scaring the users away with a number of
>> > > > breaking
>> > > > > changes in Airflow 3, promising even more breaking changes for the
>> > most
>> > > > > basic things is not something that people are looking for.
>> Attempting
>> > > to
>> > > > > change the fundamental terms will be interpreted as an even
>> stronger
>> > > > signal
>> > > > > of project immaturity.
>> > > > >
>> > > > > Given that, I oppose the idea of changing the term in the long
>> run. I
>> > > > even
>> > > > > stricter oppose the idea of deprecating it in the DAG definition
>> > > > interface.
>> > > > > We better put our time and efforts in other places in Airflow, of
>> > which
>> > > > > there are plenty.
>> > > > >
>> > > > > Kind regards,
>> > > > > Igor
>> > > > >
>> > > > > On Tue, Oct 22, 2024 at 10:36 AM Bas Harenslak
>> > > <b...@astronomer.io.invalid
>> > > > >
>> > > > > wrote:
>> > > > >
>> > > > > > Couple of thoughts:
>> > > > > >
>> > > > > > 1. The boundaries/properties of “DAG” have already faded over
>> time,
>> > > > > > for example there are now several ways to create cyclic graphs,
>> > e.g.
>> > > > > > using the @continuous schedule. I imagine these properties
>> > vanishing
>> > > > > > even more in the future, so from that perspective I support
>> > changing
>> > > > > > “DAG" to a more generic name.
>> > > > > >
>> > > > > > 2. How other orchestration frameworks do naming:
>> > > > > > Dagster: pipeline
>> > > > > > Prefect: flow
>> > > > > > Flyte: workflow
>> > > > > > Temporal: workflow
>> > > > > > Kestra: flow
>> > > > > >
>> > > > > >         I think “workflow” is the most fitting name.
>> > > > > >
>> > > > > > 3. Given the large impact of this change, I suggest defining a
>> > clear
>> > > > > > path forward. Would we first introduce the deprecation in
>> Airflow
>> > 3,
>> > > > > > and remove “DAG” in Airflow 4?
>> > > > > >
>> > > > > > Bas
>> > > > > >
>> > > > > > > On 22 Oct 2024, at 09:22, Neil <neil4r...@gmail.com> wrote:
>> > > > > > >
>> > > > > > > I don't see a problem with the term DAG, especially when most
>> > other
>> > > > > > > platforms embrace the term wholeheartedly.
>> > > > > > > I don't see anything intimidating or confusing about it at
>> all,
>> > > > > > > changing the term though would be fairly confusing to most
>> users
>> > > who
>> > > > > > > have been
>> > > > > > using
>> > > > > > > the term for years.
>> > > > > > >
>> > > > > > > On Tue, Oct 22, 2024 at 1:18 AM Tzu-ping Chung
>> > > > > > > <t...@astronomer.io.invalid
>> > > > > > >
>> > > > > > > wrote:
>> > > > > > >
>> > > > > > >> I totally agree with doing away with the term DAG. The only
>> > > problem
>> > > > > > (aside
>> > > > > > >> from actually telling people—including myself—to stop using
>> the
>> > > > > > >> term)
>> > > > > > is to
>> > > > > > >> come up with a reasonable alternative.
>> > > > > > >>
>> > > > > > >> I can’t recall who, but someone mentioned “workflow” is not
>> very
>> > > > > > accurate
>> > > > > > >> for Airflow. The term “definition” was proposed, but it’s a
>> bit
>> > > > > > >> broad; I tried to use it in a few places and kept finding
>> myself
>> > > > > > >> doubting “what definition?” and wanting to clarify “DAG
>> > > definition”
>> > > > > > >> (defeating the purpose).
>> > > > > > >>
>> > > > > > >> TP
>> > > > > > >>
>> > > > > > >>
>> > > > > > >>> On 22 Oct 2024, at 13:07, Jens Scheffler
>> > > > > > >>> <j_scheff...@gmx.de.INVALID>
>> > > > > > >> wrote:
>> > > > > > >>>
>> > > > > > >>> Hi Ryan,
>> > > > > > >>>
>> > > > > > >>> Thanks for posting. I share the exactly same observation,
>> had a
>> > > > > > >>> short
>> > > > > > >> laight because the DAG question is always an introduction if
>> > > > > > >> someone
>> > > > > > joins
>> > > > > > >> the party. I think a global renaming makes sense. Especially
>> > when
>> > > > > > >> we
>> > > > > > also
>> > > > > > >> rename Dataset to Asset this is also a reasonable step.
>> Concepts
>> > > > > > >> still
>> > > > > > can
>> > > > > > >> stay the same.
>> > > > > > >>>
>> > > > > > >>> So I hope I don‘t need to join hiding below the desk with
>> you
>> > and
>> > > > > > >>> +1
>> > > > > > for
>> > > > > > >> raising the discussion.
>> > > > > > >>>
>> > > > > > >>> Technically we can still think if we keep details of python
>> > names
>> > > > > > >>> the
>> > > > > > >> same because the execution is still a DAG… but user facing it
>> > is a
>> > > > > > workflow.
>> > > > > > >>>
>> > > > > > >>> Jens
>> > > > > > >>>
>> > > > > > >>> Sent from my Smartphone
>> > > > > > >>>
>> > > > > > >>>> On 21. Oct 2024, at 23:56, Ryan Hatter <
>> > > ryan.hat...@astronomer.io
>> > > > > > .invalid>
>> > > > > > >> wrote:
>> > > > > > >>>>
>> > > > > > >>>> Everyone please sheathe your swords... at least for now.
>> > > > > > >>>>
>> > > > > > >>>> The term "DAG" has very little meaning to Airflow users.
>> > Indeed,
>> > > > > > >>>> it
>> > > > > > has
>> > > > > > >>>> little meaning outside of some mathematicians and software
>> > > > > > >>>> engineers
>> > > > > > for
>> > > > > > >>>> whom the properties of a DAG actually matter. For someone
>> new
>> > to
>> > > > > > >>>> data engineering or workflow orchestration, one of the
>> first
>> > > > > > >>>> questions they
>> > > > > > >> will
>> > > > > > >>>> likely have is, "what on earth is a DAG?" The answer is
>> almost
>> > > > > > >>>> always, "It's a directed acyclic graph. You don't need to
>> > worry
>> > > > > > >>>> about what
>> > > > > > that
>> > > > > > >>>> means; it's just a term for your workflow."
>> > > > > > >>>>
>> > > > > > >>>> The term "DAG" is problematic for at least a couple
>> important
>> > > > > reasons:
>> > > > > > >>>>
>> > > > > > >>>> *Complexity for New Users*: As mentioned above, "DAG" is
>> > > > > > >>>> unnecessarily intimidating and confusing. We want Airflow
>> to
>> > be
>> > > > > > >>>> approachable, and
>> > > > > > >> using
>> > > > > > >>>> technical jargon like "DAG" right off the bat creates an
>> > initial
>> > > > > > >> barrier to
>> > > > > > >>>> understanding.
>> > > > > > >>>>
>> > > > > > >>>> *Disconnect Between DAG and Workflow Concepts*: The DAG is
>> > just
>> > > > > > >>>> one component of an Airflow workflow. The workflow includes
>> > its
>> > > > > > >>>> schedule, retries, timeouts, a dozen other parameters, and
>> > other
>> > > > > > >>>> metadata that
>> > > > > > the
>> > > > > > >>>> DAG component doesn’t account for.
>> > > > > > >>>>
>> > > > > > >>>> Consider the following from the Airflow homepage
>> > > > > > >>>> <https://airflow.apache.org/>.
>> > > > > > >>>>
>> > > > > > >>>> Apache Airflow® is a platform created by the community to
>> > > > > > >> programmatically
>> > > > > > >>>> author, schedule and monitor workflows.
>> > > > > > >>>> Then, if we look at the "What is Airflow?" docs page
>> > > > > > >>>> <
>> > > https://airflow.apache.org/docs/apache-airflow/stable/index.html
>> > > > > > >>>> >,
>> > > > > > we
>> > > > > > >> can
>> > > > > > >>>> see that the docs explain what Airflow is without using
>> "DAG."
>> > > > > > >>>> It's
>> > > > > > >> only in
>> > > > > > >>>> the *workflow* Python code that the term is introduced out
>> of
>> > > > > > >>>> nowhere
>> > > > > > >> as a
>> > > > > > >>>> comment that awkwardly tries to explain it:
>> > > > > > >>>>
>> > > > > > >>>> # A DAG represents a workflow, a collection of tasks
>> > > > > > >>>>
>> > > > > > >>>> It makes sense to not refer to DAGs in these introductions
>> to
>> > > > > > >>>> Airflow, because *Airflow doesn't orchestrate DAGs; it
>> > > > orchestrates
>> > > > > workflows*.
>> > > > > > >> The
>> > > > > > >>>> DAG is the model that, for reasons irrelevant to almost
>> every
>> > > > > > >>>> user, workflows must adhere to.
>> > > > > > >>>>
>> > > > > > >>>> So, I propose at least adding an alias for the term "DAG"
>> and
>> > > > > > >>>> updating documentation to replace "DAG" with "workflow".
>> > > > > > >>>>
>> > > > > > >>>> For example, instead of...
>> > > > > > >>>>
>> > > > > > >>>> @dag(
>> > > > > > >>>> schedule="@daily",
>> > > > > > >>>> ...
>> > > > > > >>>> dagrun_timeout=timedelta(hours=1)
>> > > > > > >>>> )
>> > > > > > >>>>
>> > > > > > >>>> Users could do...
>> > > > > > >>>>
>> > > > > > >>>> @workflow(
>> > > > > > >>>> schedule="@daily",
>> > > > > > >>>> ...
>> > > > > > >>>> run_timeout=timedelta(hours=1)
>> > > > > > >>>> )
>> > > > > > >>>>
>> > > > > > >>>>
>> > > > > > >>>> And with that... I will start running away.
>> > > > > > >>>
>> > > > > > >>>
>> > > > > > >>>
>> > > ------------------------------------------------------------------
>> > > > > > >>> --- To unsubscribe, e-mail:
>> dev-unsubscr...@airflow.apache.org
>> > > > > > >>> For additional commands, e-mail:
>> dev-h...@airflow.apache.org
>> > > > > > >>>
>> > > > > > >>
>> > > > > > >>
>> > > > > > >>
>> > > -------------------------------------------------------------------
>> > > > > > >> -- To unsubscribe, e-mail:
>> dev-unsubscr...@airflow.apache.org
>> > > > > > >> For additional commands, e-mail: dev-h...@airflow.apache.org
>> > > > > > >>
>> > > > > > >>
>> > > > > >
>> > > > > >
>> > > > >
>> > > > >
>> > > > >
>> ---------------------------------------------------------------------
>> > > > > To unsubscribe, e-mail: dev-unsubscr...@airflow.apache.org
>> > > > > For additional commands, e-mail: dev-h...@airflow.apache.org
>> > > > >
>> > > > >
>> > > >
>> > >
>> >
>>
>

Reply via email to