wirybeaver commented on PR #2388:
URL: 
https://github.com/apache/datafusion-ballista/pull/2388#issuecomment-5648257437

   Thank you for taking another look. I think I caused confusion by using Hudi 
as the first example, so I want to clarify the boundary precisely.
   
   **#2388 has no dependency on hudi-rs, my fork, or any Hudi commit SHA.** The 
only new dependencies behind `contrib-hudi` are `datafusion-proto` and `prost`, 
both already part of the Ballista/DataFusion ecosystem. The SHA shown on the 
review is the commit SHA of this PR itself, not a dependency pin.
   
   ```text
   #2388: Ballista build/release graph
   
   +------------------------------------------------------+
   | ballista crate                                       |
   |                                                      |
   | default build                                        |
   |   - no hudi-rs dependency                            |
   |   - no Hudi runtime path                             |
   |                                                      |
   | optional contrib-hudi build gate                     |
   |   - wire descriptor                                  |
   |   - provider codec interface                         |
   |   - still no hudi-rs dependency                      |
   +--------------------------+---------------------------+
                              |
                              | implemented externally
                              | only when explicitly built
                              v
   +------------------------------------------------------+
   | Separate format integration crate                    |
   |   - owns the format SDK dependency                   |
   |   - excluded from Ballista's workspace/release graph |
   +------------------------------------------------------+
   ```
   
   The broader proposal is a convention rather than special treatment for Hudi:
   
   ```text
   Ballista main crate: stable gates/SPIs, no table-format SDKs
           |
           +-- Apache Iceberg integration crate  -> Iceberg dependencies
           +-- Apache Delta integration crate    -> Delta dependencies
           +-- Apache Lance integration crate    -> Lance dependencies
           +-- Apache Hudi integration crate     -> Hudi dependencies
   ```
   
   Each format would own a separate crate under the Apache project umbrella and 
would not add its SDK to the main Ballista crate, root lockfile, or release 
graph. This is intended to limit the release and dependency impact of 
third-party open-table-format integrations.
   
   I chose hudi-rs only as a small validation vehicle because Iceberg and Delta 
Lake integrations are already being explored, but those efforts do not 
currently demonstrate this isolation convention. #2388 itself does not require 
accepting #2389. If it would make the design easier to evaluate independently 
of Hudi, I would be happy to provide Lance as a second example.
   


-- 
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]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to