从学生贡献者到 Apache SeaTunnel Committer:Doyeon Kim 的开源成长之路

还记得去年我们曾经采访过的韩国小姐姐吗?韩国萌系新人贡献者爆刷存在感:加入半年,活跃度已经拉满!短短 2 年之内,她已经正式被邀请成为 Apache SeaTunnel 社区的 Committer 啦!👏🏻👏🏻

虽然还是一名在校大学生,但是凭借她高涨的学习热情和对项目与社区持续不断的优质贡献,她的成绩大家有目共睹,也获得了社区的一致认可。在她受邀成为 Committer 之际,社区又对她进行了一次更加深入的采访。与当时接受采访时相比,如今她的心境有何变化呢?现在透过这次采访,我们来回顾下她的成长历程吧!

个人简介

姓名:Doyeon Kim

GitHub ID:dybyte

职业:学生

技术方向:后端开发、数据集成、分布式系统以及 Apache SeaTunnel。尤其关注数据集成系统的内部工作机制,包括 Connector、Checkpoint、故障恢复以及引擎状态管理等方面。

爱好:开发、玩游戏《守望先锋》。

完整访谈实录

1. 您参与开源多久了?开源最吸引您的地方是什么?

我参与开源大约有一年时间。

吸引我参与开源的原因,是能够与许多人共同维护同一个项目。我觉得来自不同背景的贡献者一起讨论想法、评审代码、共同改进项目,是一件非常有趣且令人享受的事情。

我也非常喜欢开源社区开放和活跃的氛围。通过参与开源,我不仅能够从代码本身学习,还能够从社区讨论、代码评审以及资深贡献者解决问题的思路中获得成长。

2. 您是从什么时候开始参与 Apache SeaTunnel 社区贡献的?契机是什么?

我于 2025 年 5 月开始参与 Apache SeaTunnel 社区。

最初,我主要在学习后端开发,希望通过参与真实的开源项目积累实践经验。当我发现 SeaTunnel 时,我觉得这个社区非常活跃、友好,并且对新贡献者十分开放,因此决定开始参与贡献。

随着持续参与,我接触到了许多与 Connector、引擎运行机制、Checkpoint 和系统可靠性相关的有趣问题。通过这些经历,我的技术兴趣也逐渐从后端开发扩展到了数据集成系统和分布式系统领域。

3. 如今您已成为 SeaTunnel Committer,请总结一下您为社区所做的贡献,包括代码与非代码贡献。

我对 Apache SeaTunnel 的贡献包括代码贡献、长期功能提案、Pull Request 评审、技术讨论、文档改进以及社区活动等多个方面。

在代码层面,我主要做过 Zeta 引擎、Connector、Transform-V2、测试以及文档相关的工作。

在 Zeta 引擎方面,我参与改进了任务状态处理、指标(Metrics)管理、REST API 稳定性以及各种故障场景下的边界问题。例如:

这些改动让我对 SeaTunnel 的引擎运行机制、任务生命周期、指标处理以及故障恢复路径有了更深入的理解。

我还参与了 Connector 和 Transform-V2 相关改进。例如:

这些贡献主要围绕修复 Connector 或 Transform 的行为问题、提升功能正确性以及增强 Transform 能力展开。

除了已经合并的贡献之外,我还持续参与一些规模更大的功能设计与提案工作。这些 PR 目前仍处于开放状态,但我已经完成了主要开发工作,并根据评审意见进行了修改,目前正在等待进一步评审或合并。

虽然我不会将这些工作视为已经完成的功能,但它们代表了我投入较多精力深入研究的方向。

PR #10485:FeatureConnector 新增 BigQuery Sink Connector https://github.com/apache/seatunnel/pull/10485

该 PR 基于 BigQuery Storage Write API 实现了 BigQuery Sink Connector。

通过这个项目,我深入学习了 Connector 设计、Checkpoint 集成、写入语义以及故障恢复机制等内容。

PR #10399:FeatureZeta 为 IMap External Storage 增加 Compaction 支持

https://github.com/apache/seatunnel/pull/10399

这个 PR 探索了 IMap 外部存储的 Compaction 能力。

通过这项工作,我对存储设计、恢复机制以及如何降低长期维护成本有了更深入的思考。

PR #10812:FeatureZeta 通过 StateStore 抽象解耦 Hazelcast IMap

https://github.com/apache/seatunnel/pull/10812

该 PR 提出了在 Zeta 引擎中引入 StateStore 抽象层的设计。

目标是减少引擎对 Hazelcast IMap 的直接依赖,使状态管理更易于维护和演进。

这是我近期投入较多精力研究的方向之一。

PR #10133:FeatureZeta 上报非终态 Job 状态 https://github.com/apache/seatunnel/pull/10133

该 PR 主要围绕改进 Zeta 引擎中的任务状态上报和可观测性能力展开。

此外,我还通过一些较小的修复工作提升了测试稳定性和 CI 可靠性。

虽然这些改动并非我贡献的重点,但我认为它们对于提升贡献者开发效率以及增强社区信任同样十分重要。

非代码贡献方面,我参与了其他贡献者的 Pull Request 评审以及技术讨论。

我的评审内容涉及 Connector、Zeta 引擎行为、配置校验、测试、文档以及代码可维护性等多个方面。

在评审过程中,我不仅关注代码是否能够正常运行,也会关注这些改动是否安全、易于理解,以及是否有利于项目长期维护。

除此之外,我还通过技术文章分享以及参与 SeaTunnel Meetup 活动传播自己的经验。具体可参考我的演讲回放:

视频

我希望这些活动能够帮助更多人了解 SeaTunnel,并对参与社区贡献产生兴趣。

4. 在长期参与 SeaTunnel 项目和社区之后,您认为 SeaTunnel 与其他同类产品相比最大的差异是什么?有哪些优势和不足?社区中哪些方面最吸引您持续投入?

在我看来,当用户需要进行分布式数据集成,并需要连接大量不同的数据源和目标系统时,SeaTunnel 是一个非常有价值的选择。

SeaTunnel 的一个重要优势是拥有丰富的 Connector 生态,同时支持分布式执行能力。

这使得它非常适用于 ETL 和 ELT 场景,帮助用户在不同系统之间完成数据迁移、同步和转换。

另一个很有意思的特点是,SeaTunnel 拥有自己的引擎 Zeta,同时还支持 Flink 和 Spark 等执行引擎。

这使用户能够根据自身业务需求选择更合适的执行方式。

与此同时,我认为 SeaTunnel 更专注于数据集成本身,而不是成为一个功能极其完整的流处理引擎。

对于一些非常复杂的流式计算场景,例如高级聚合、窗口计算或事件时间处理等,根据具体需求,Flink 或 Spark 可能仍然是更适合的选择。

SeaTunnel 的价值在于帮助用户连接大量系统并处理更大规模的数据,因此评价其价值时,需要结合企业自身的业务需求进行判断。

让我持续参与社区的重要原因在于,SeaTunnel 仍然有许多值得解决且富有意义的问题。

项目持续活跃,社区开放包容,而且我能够明显感受到个人贡献者仍然可以对项目的发展产生真实影响。

5. 您是否曾经针对 SeaTunnel 的不足进行过二次开发或定制化增强?这些改进是否回馈到了社区?能否介绍一下设计思路?

由于我目前还是学生,并没有企业生产环境中的定制化使用经验。

不过,在参与社区贡献过程中,我确实参与过一些针对 SeaTunnel 局限性或潜在可靠性问题的改进工作。

6. 您所在公司是否使用了 SeaTunnel?如果没有,未来是否会推荐?推荐理由是什么?

由于我目前还是大学生,因此没有企业使用案例可以分享。

不过,如果未来所在公司需要一个数据集成平台,我会根据具体需求考虑推荐 SeaTunnel。

例如,如果企业需要连接大量不同的数据源和目标系统,同时需要支持 ETL 或 ELT 的分布式执行能力,那么 SeaTunnel 会是一个值得考虑的选择。

当然,我也会认真评估其中的权衡因素。

最终选择仍应取决于企业的数据规模、可靠性要求、运维成本以及 SeaTunnel 的 Connector 生态是否符合业务需求。

7. 您希望继续参与 SeaTunnel 社区能够为个人成长带来哪些帮助?

通过持续参与 SeaTunnel 社区,我希望能够在技术和个人能力两个方面不断成长。

在技术层面,我希望进一步深入理解数据集成系统、分布式系统、Checkpoint、故障恢复、Connector 设计以及引擎架构等领域。

同时,我也希望提升自己的沟通能力。

通过与社区成员讨论技术问题、参与 PR 评审以及接受资深贡献者的反馈,我已经收获了很多成长。

此外,我还希望提升自己的英语交流能力。

例如参与 CommunityOverCode、聆听技术演讲以及进行公开分享,对于我来说都是非常宝贵的经历。

总体而言,SeaTunnel 社区不仅帮助我成长为一名开发者,也帮助我成长为一个能够在国际化开源社区中进行沟通、协作和贡献的人。

8. 您如何理解 Committer 这一角色?Committer 应该承担哪些责任?

在我看来,Committer 对社区的贡献不仅仅是编写代码。

Committer 可以参与代码评审、维护代码质量、帮助和指导贡献者,以及帮助新成员更快了解项目。

我认为 Committer 还应该持续思考哪些行动能够为社区带来积极影响。

这包括提供建设性的反馈、推动讨论取得进展,以及做出有利于项目长期健康发展的决策。

因此,我认为 Committer 不只是拥有代码合并权限的人。

更重要的是,它意味着帮助项目和社区朝着健康方向持续发展的责任。

9. 成为 Committer 之后,您有什么想对社区说的话,或者对项目未来发展的建议?

能够成为 Apache SeaTunnel Committer,我感到非常荣幸和感激。

在参与社区的过程中,我获得了许多宝贵的经历。

我很高兴自己的热情和贡献能够对社区有所帮助。

我要感谢所有评审过我 PR、回答过我问题以及与我讨论技术问题的人。

正是他们的反馈与支持,让我能够持续参与并不断成长。

虽然过程中也经历过一些困难时刻,但我认为这些经历都成为了我成长的一部分。

目前,我暂时还没有针对项目未来发展方向的具体建议。

不过,如果未来发现值得改进的地方,我会继续通过 GitHub Issue、Pull Request 以及社区讨论分享自己的想法。

10. 您近期在推动社区和项目发展方面有哪些计划?

未来一段时间里,我希望继续帮助更多贡献者更容易地参与 SeaTunnel 社区。

其中一种方式就是继续参与 Pull Request 评审工作。

我希望能够持续进行代码评审、提供反馈,并帮助贡献者更好地理解项目。

同时,我也很希望帮助韩国开源社区的更多开发者了解 SeaTunnel 并参与贡献。

我认为这不仅能够帮助新的贡献者成长,也能够进一步壮大 SeaTunnel 社区。

此外,我还计划继续通过 LinkedIn、Medium 等平台分享自己的经验。

通过撰写关于 SeaTunnel、开源贡献经历以及技术问题解决过程的文章,我希望能够让更多人关注并了解这个项目。