jason810496 commented on PR #46621:
URL: https://github.com/apache/airflow/pull/46621#issuecomment-3078208467

   > I was talking to Jed about something very similar last week.  I don't even 
think the interface needs to enforce the "how" for the versioning, that can be 
delegated to each Bundle provider. 
   
   Cool! Glad to hear we’re on the same page. I don’t have a strong opinion on 
this, my main concern is making sure we align on the overall changes before 
moving forward.
   
   I agree, this approach might be simpler.
   
   > IMHO the interface should expect a string payload back from the bundle 
provider which is the representation of the dag bundle version (which can be 
whatever mechanism the provider wants/can use to serialize the state of the 
dags at that time).
   
    I’ve considered this scenario, and I agree it should be a mandatory 
requirement if any provider supports versioning.
   
   However, it seems challenging to get a specific snapshot version at the 
bucket + subpath level in most object stores. As far as I know, current cloud 
object stores only support versioning at the object level, not for a 
combination of bucket + subpath.
   
   One possible solution is: The user could provide a special path for storing 
a metadata file (maybe in JSON or YAML format), which would track the current 
bundle version ID along with the version IDs of the relevant objects (Dag 
files) and their prefixes. I’m not sure if this is the best approach, but I’d 
love to hear your thoughts.
   
   The solution will similar to metadata file in Open Table Format (e.g. Apache 
Iceberg, Delta Lake) and metadata file for supporting bundle versioning might 
be like:
   ```yaml
   - bundle_version: <bundle version>
      dag_files:
       - object_version_id: <object version id from object store>
          prefix: /path/dag/file
   ```
   
   > I'd also vote that the interface creates the version id for that, 
otherwise each provider will create their own semantics and shape of the id 
which is going to create inconsistency.
   
   Thanks for agreeing that the interface should create the version ID. I’ll 
continue to gather more ideas and suggestions on this.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to