apache / apache/iceberg-go

feat(table): reorganize the table package into domain sub-packages (post-v3)

Open
#1,149 1 comment 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.