Skip to content

blog: GSoC 2025 - Beam YAML, Kafka and Iceberg User Accessibility - #36233

Merged
liferoad merged 5 commits into
apache:masterfrom
charlespnh:blog
Sep 22, 2025
Merged

blog: GSoC 2025 - Beam YAML, Kafka and Iceberg User Accessibility#36233
liferoad merged 5 commits into
apache:masterfrom
charlespnh:blog

Conversation

@charlespnh

Copy link
Copy Markdown
Contributor

GSoC 2025 blog write-up for Beam YAML, Kafka and Iceberg User Accessibility project.


Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

  • Mention the appropriate issue in your description (for example: addresses #123), if applicable. This will automatically add a link to the pull request in the issue. If you would like the issue to automatically close on merging the pull request, comment fixes #<ISSUE NUMBER> instead.
  • Update CHANGES.md with noteworthy changes.
  • If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.

To check the build health, please visit https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md

GitHub Actions Tests Status (on master branch)

Build python source distribution and wheels
Python tests
Java tests
Go tests

See CI.md for more information about GitHub Actions CI or the workflows README to see a list of phrases to trigger workflows.

@gemini-code-assist

Copy link
Copy Markdown
Contributor

Summary of Changes

Hello @charlespnh, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request adds a new blog post to the website, detailing the outcomes of a Google Summer of Code 2025 project. The project aimed to improve the user accessibility of the Beam YAML SDK by developing and documenting production-ready machine learning pipeline examples that leverage Kafka and Iceberg data sources. These examples demonstrate how to implement complex ML workflows using Beam's declarative YAML approach, addressing a previous lack of comprehensive use cases.

Highlights

  • New Blog Post Added: This pull request introduces a new blog post titled 'Google Summer of Code 2025 - Beam YAML, Kafka and Iceberg User Accessibility'.
  • GSoC 2025 Project Summary: The blog post summarizes a GSoC 2025 project focused on enhancing the Beam YAML SDK's accessibility for complex ML tasks by integrating with Kafka and Iceberg.
  • Production-Ready ML Examples: The project delivered four production-ready ML pipeline examples using the Beam YAML SDK: Streaming Classification Inference, Streaming Regression Inference, Batch Anomaly Detection, and Feature Engineering & Model Evaluation.
  • Improved User Accessibility: The core intent of the project was to provide meaningful, end-to-end examples to help democratize data processing for scientists and analysts, bridging the adoption gap for the Beam YAML SDK in ML workflows.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@charlespnh

Copy link
Copy Markdown
Contributor Author

R: @chamikaramj and @liferoad

@github-actions

Copy link
Copy Markdown
Contributor

Stopping reviewer notifications for this pull request: review requested by someone other than the bot, ceding control. If you'd like to restart, comment assign set of reviewers

Comment thread website/www/site/content/en/blog/gsoc-25-yaml-user-accessibility.md Outdated
@liferoad
liferoad requested a review from derrickaw September 22, 2025 14:06
@liferoad

Copy link
Copy Markdown
Contributor

Thanks for writing this blog!!!

@derrickaw

Copy link
Copy Markdown
Collaborator

LGTM other than XQs comment. Thanks!

@liferoad

Copy link
Copy Markdown
Contributor

/gemini review

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request adds a blog post for the GSoC 2025 project on Beam YAML, Kafka, and Iceberg user accessibility. The post is well-structured and provides a good overview of the project's context, contributions, and challenges. I've provided a few suggestions to improve grammar and clarity, which should help make the post even more polished for publication. Overall, great work on documenting the project!

-->

The relatively new Beam YAML SDK was introduced in the spirit of making data processing easy,
but it has gained little adoption for complex ML tasks and hasn’t been widely used with Managed IOs such as Kafka and Iceberg.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

For consistency and correctness, it's better to use a standard apostrophe (') instead of a right single quotation mark () in contractions.

Suggested change
but it has gained little adoption for complex ML tasks and hasnt been widely used with Managed IOs such as Kafka and Iceberg.
but it has gained little adoption for complex ML tasks and hasn't been widely used with Managed IOs such as Kafka and Iceberg.

Comment thread website/www/site/content/en/blog/gsoc-25-yaml-user-accessibility.md Outdated
Comment thread website/www/site/content/en/blog/gsoc-25-yaml-user-accessibility.md Outdated
Comment thread website/www/site/content/en/blog/gsoc-25-yaml-user-accessibility.md Outdated

Beam, as well as Kafka and Iceberg, are mainstream big data technology but they also have a learning curve.
The overall theme of the project is to help democratize data processing for scientists and analysts that traditionally
don’t have a strong background in software engineering. They can now refer to these meaningful examples as the starting point,

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

For consistency and correctness, it's better to use a standard apostrophe (') instead of a right single quotation mark () in contractions.

Suggested change
dont have a strong background in software engineering. They can now refer to these meaningful examples as the starting point,
don't have a strong background in software engineering. They can now refer to these meaningful examples as the starting point,

Comment thread website/www/site/content/en/blog/gsoc-25-yaml-user-accessibility.md Outdated
Comment thread website/www/site/content/en/blog/gsoc-25-yaml-user-accessibility.md Outdated
Comment thread website/www/site/content/en/blog/gsoc-25-yaml-user-accessibility.md Outdated
Comment thread website/www/site/content/en/blog/gsoc-25-yaml-user-accessibility.md Outdated
Comment thread website/www/site/content/en/blog/gsoc-25-yaml-user-accessibility.md Outdated

@chamikaramj chamikaramj left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Thanks a lot for writing this @charlespnh.


The relatively new Beam YAML SDK was introduced in the spirit of making data processing easy,
but it has gained little adoption for complex ML tasks and hasn’t been widely used with Managed IOs such as Kafka and Iceberg.
As part of Google Summer of Code 2025, new illustrative, production-ready pipeline examples of ML use cases with Kafka and Iceberg

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Managed I/O (here and elsewhere)

Also let's add a link to https://beam.apache.org/documentation/io/managed-io/.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated.

## Challenges
The main challenge of the project has been a lack of previous YAML pipeline examples and good documentation to rely on.
Unlike the Python or Java SDKs where there are already many notebooks and end-to-end examples demonstrating various use cases,
the examples for YAML SDKs only involved simple transformations such as filter, group by, etc… There were a lot of deep dives

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

etc.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated

## Challenges
The main challenge of the project has been a lack of previous YAML pipeline examples and good documentation to rely on.
Unlike the Python or Java SDKs where there are already many notebooks and end-to-end examples demonstrating various use cases,
the examples for YAML SDKs only involved simple transformations such as filter, group by, etc… There were a lot of deep dives

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You meant "There weren't a lot of deep dives" ?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There were, yeah. These were the cases with transforms where the API reference was not really clear and the doc generated had issues with missing config fields. For example, MLTransform and ReadFromIceberg.

This was more of a challenge with documentation where at the time the doc release process had had some problems generating properly. @liferoad

@liferoad
liferoad merged commit 42aed71 into apache:master Sep 22, 2025
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants