Amogh:

1. It becomes an optional dep once Modal Sandbox uses the provider.
2. Similar to Anthropic & Pydantic IMO. The hooks are pretty light-weight
by design ensuring we can get best of the Airflow integration without
having to test entirety of Modal infra. That said I do use Modal so happily
test and can integrate any dags as needed.

On Mon, 21 Sept 2026 at 11:33, Jarek Potiuk <[email protected]> wrote:

> +1. Looks great as a standalone provider
>
> On Mon, Sep 21, 2026, 11:55 Amogh Desai <[email protected]> wrote:
>
> > Hi Kaxil,
> >
> > +1 on the standalone provider.
> > The infrastructure vs model vendor split makes sense to me.
> >
> > I have two questions regarding this:
> >
> > 1. When the common.ai sandbox backend starts taking modal_conn_id, does
> > that make the Modal provider a
> > dependency of common.ai, or is it an optional import that only kicks in
> > when someone actually uses Modal?
> > I just want to ensure that common.ai stays light for people who are not
> > using Modal.
> >
> > 2. How do you plan to test this, particularly in CI? AFAICT, Modal is a
> > paid service.
> >
> > Thanks & Regards,
> > Amogh Desai
> >
> > On Mon, Sep 21, 2026 at 6:38 AM Kaxil Naik <[email protected]> wrote:
> >
> > > Hi all,
> > >
> > > I'd like to propose a new community provider,
> > > apache-airflow-providers-modal, for Modal (https://modal.com/), the
> > > serverless compute platform for running functions, GPU jobs and
> sandboxed
> > > containers. Targeting Airflow 3+ and shipping as incubation, same as
> the
> > > Anthropic and OpenAI providers.
> > >
> > > Scope of the first version
> > >
> > > - A modal connection type (token id and secret, optional Modal
> > > environment), so Modal credentials live in an Airflow connection and
> > > secrets backend rather than in MODAL_TOKEN_ID / MODAL_TOKEN_SECRET on
> > every
> > > worker.
> > > - ModalHook, which turns that connection into an authenticated
> > modal.Client
> > > and hands out handles to deployed functions and classes, secrets,
> > volumes,
> > > apps and sandboxes, each scoped to the connection's environment.
> > Execution
> > > stays on the Modal SDK objects (.remote(), .spawn(), Sandbox.wait()),
> so
> > > the hook does not re-wrap the SDK.
> > >
> > > No operators or executor in this first PR. The intent is to land the
> > > connection type and hook first, because several things want them: the
> > Modal
> > > backend for the common.ai sandbox toolset (#72910) currently has to
> read
> > > ambient credentials, and a ModalExecutor that runs each task in its own
> > > Modal sandbox has a working prototype that I'd bring as a follow-up PR
> > once
> > > the provider exists to host it.
> > >
> > > Why a standalone provider rather than a piece of common.ai
> > >
> > > common.ai is provider-agnostic. Modal is infrastructure, not a model
> > > vendor: a connection type, an executor and compute-oriented operators
> > have
> > > no home in an AI-neutral interface, and tying non-AI Modal users to
> > > common.ai would be the wrong dependency direction. The sandbox backend
> > > stays in common.ai and will take an optional modal_conn_id resolved
> > > through
> > > this hook, which is the same "vendor provider alongside common.ai"
> split
> > > we
> > > settled on for Anthropic and OpenAI.
> > >
> > > Working implementation
> > >
> > > https://github.com/apache/airflow/pull/73418
> > >
> > > I'm happy to steward and sponsor the provider, and would welcome a
> > > co-steward per the community provider policy. If there are no
> objections
> > > within seven days I'll proceed with merging.
> > >
> > > Thanks,
> > > Kaxil
> > >
> >
>

Reply via email to