GitHub user vinothchandar edited a discussion: Splitting hudi-common classes 
into `common` and `core`

All , the hudi-common package  has grown in scope. and I have spent sometime 
with #19193  introducing a new `core` subpackage here to house all the core 
Hudi timeline, filesystem view and the consistency/transactional stuff, as well 
as key I/O. I would like `common` to be mostly holding common models, common 
base infrastructure (functions, expressions, schema) used by everyother module. 

Eventually, I want to split off `hudi-common` and `hudi-core` as separate 
modules where something like `hudi-io` can depend on `hudi-common`. Today due 
to this mixing of classes with different scope, the dependency is other way 
around and we are keeping strictly I/O related classes in hudi-common without a 
choice.  

End state looks like this, with proper homing of classes. 

```
hudi-common. // all base models and classes and utils , e.g schema, 
enginecontext, expression, filegroup, fileslice. ...
   |============> hudi-io  // all core I/O classes, lower level  (ideally 
including reading/writing files, but can't have hadoop deps) 
       |================> hudi-core // everything around txns, timeline, 
metadata, filesystemview, hudi specific reader/writers (single  read/write 
handle level like filegroupreader)
   |============> hudi-hadoop-common // how it is today
```


Thoughts/suggestions welcome!

GitHub link: https://github.com/apache/hudi/discussions/19194

----
This is an automatically sent email for [email protected].
To unsubscribe, please send an email to: [email protected]

Reply via email to