feat(table): reorganize the table package into domain sub-packages (post-v3)
- Dominant language
- Go
- Stars
- 463
- Forks
- 232
- Avg merge
- 2d 11h
- Merged PRs (30d)
- 121
Description
### Feature Request / Improvement
The table package is up to ~37 source files now, all flat in one directory. Core stuff like table.go and metadata.go sits next to the fanout writers, the scanner, transaction/commit code, and the maintenance tools. It's come up in review a few times and was brought up in [Slack](https://apache-iceberg.slack.com/archives/C05J3MJ42BD/p1780302482426819).
How I'd approach breaking it up:
- design the layout first - short writeup plus one package pulled out as a prototype to see what the API churn really looks like
- then land it one package at a time
Timing-wise I think this is a post-v3 thing. I don't want to step on the core work that's in flight. Filing now so it's on the radar.
I can work on this and start looking at what would be good organizations for the code. Will share when I have something.
Contributor guide
Research direction
Start by reading the table package, including table.go and metadata.go, and map the fanout writers, scanner, transaction/commit code, and maintenance tools. The first milestone is a short layout writeup plus one extracted package as a prototype; done means the organization and resulting API churn are documented for later package-by-package changes.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- backend
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100