SlideShare a Scribd company logo
How to Contribute to Apache Flink
Bowen Li
Flink Committer, Engineer @ Alibaba
Seattle Flink Meetup @ AWS
May, 2019
What will you learn today
● Roles and tools at Flink
● How to become a Flink contributor
● How to become a committer
The Journey of Apache Flink
Roles at Apache Flink
Contributors
PMC
(21)
Committers
(45)
● PMC - Project Management Committee
● ASF - Apache Software Foundation
PMC votes and elects new
committer
Committer is elected from
active, committed contributors
PMC
Chair
Permission to commit code
<id>@apache.org email
Oversees project: releases,
health, legal, branding, infra
Reports to ASF Board quarterly
Report bugs, testing,
contribute code & doc,
support other users,
community work, etc
Users
Run Flink apps, ask
questions
Some users proactively
becomes contributors
Tools at Apache Flink
Communication Documentation
Design Doc / Wiki /
FLIP (Flink Improvement Proposal)
Tasks
Bugs / Features / Improvements
https://issues.apache.org/jira/projects/FLINK
Code
Example Process for FLIP
(Flink Improvement Proposal)
Discuss and
get Consensus Write Design Doc
Create Issues
Create PRs
Address Comments
Review
Build & Test
PR Merged
Create FLIP
How to become a Flink contributor?
● dev@flink.apache.org is the primary channel for discussion and
decision-making among Flink developers
○ FLIP, design discussion, roadmap planning, release voting & scheduling
○ All other miscellaneous development questions
○ Bring up your opinions and ideas!
○ See https://flink.apache.org/community.html#mailing-lists
Contibute to Flink Development - Join the Discussions!
● Apache projects vote on: releases, procedural/code changes, designs
● “+1 / -1, because …”
● Lazy consensus: Assume consensus after 72 hours if no one objects
○ Used for smaller changes, procedural changes, …
● Most Important Vote: Releases
○ Duration of at least 72 hours (workdays)
○ Contributors can help with
■ legal checks - checksums, licenses
■ functional checks - perf, upgrade/backward compatibility test, e2e test, manual test
■ See https://cwiki.apache.org/confluence/display/FLINK/Verifying+a+Flink+Release
Voting: How decisions are made
Contibute to Flink Development - Code and PR review
JIRA Ticket
Get consensus on your proposed change
Find a committer willing to review and merge
Implement
Pull Request Review &
Address Comments
Merge!
dev@ discussion
Usually for bigger changes with a
design doc or FLIP
Contibute to Flink Development - Code and PR review
Can’t emphasize more on getting committers’ consensus on your proposal before
implementing any code for bigger changes!
So often that contributors wasted their time if their proposed solution is rejected...
Tip for new contributors!
How to find a committer who can “sponsor” you?
Each committer is usually familiar with and responsible for a few modules.
Which committer can help you?
● the one that responds to your email or comment in your JIRA
● the one modifies related files and modules by look thru commit history
● the commonly acknowledged one
○ you’ll get more sense of it when being long enough in community
Contibute to Flink Development - Code and PR review
Machine Learning
Query Planner
DataStream API
Connectors
Metrics
State/Checkpoint/Savepoint
Runtime
Cluster & Resource Management
Python/Table API, SQL, SQL Client
Modules that you can contribute to, including but not limited to
Contibute to Flink Development - PR review
Contibute to Flink Development - Documentations
Contibute to Flink Development - Documentations
git clone https://github.com/apache/flink
cd flink/docs
●
○
●
●
○
●
How to contribute to Apache Flink @ Seattle Flink meetup
Contibute to Flink Development - Documentations
…
…
Contibute to Evangelism
● Meetups
○ Speak about Flink at our Seattle Flink meetup or other meetups
○ Help host Flink meetup event
● Conferences
○ Give talks on Flink at conferences
● Blogs
○ Share your thoughts and experience on Flink
● Online and Social Networks
○ Talk about Flink on Twitter, Linkedin, StackShare, etc
Contibute to User Support
● user@flink.apache.org is the primary support channels where
contributors can help their peers and answer questions
○ ~150+ emails/week, a couple thousands of subscribers
● Stack Overflow
○ [apache-flink] tag: 2800 questions, 1100 unanswered
Problem and Solution
Not get immediate responses
Async Communication
Response can be in days
Consensus can take weeks
Committer will tell you why, and
help to come up with alternatives
Learn requirements on code quality
Emphasize on coding style,
comments, and doc
Code review is too picky
Ideas/proposals are rejected
Contributors new to the community are often upset about some situations.
Here are the common expectations to have and what you can do
How to become a Committer: Requirements
● Formally: PMC will vote on a community member to become a committer (on private@)
● Understanding of “The Apache Way”, good community engagement
● Meritocracy
○ Merit are earned with good, consistent contributions (those in previous slides) and
demonstrated expertise over a long period of time
● See https://flink.apache.org/how-to-contribute.html#how-to-become-a-committer
Thanks!
Twitter @Bowen__Li
Reference:
How to contribute to Apache Flink, Robert Metzger, 2019
Get involved in the Apache Flink Community, Xingcan Cui, 2018

More Related Content

PDF
Community update on flink 1.9 and How to Contribute to Flink
PDF
Webinar: How to contribute to Apache Flink - Robert Metzger
PDF
How to Contribute to Apache Flink (and Flink at the Apache Software Foundation)
PDF
Apache Software Foundation: How To Contribute, with Apache Flink as Example (...
PDF
[API the Docs Paris 2018] Architecting DX
PDF
OSMC 2024 | Ignite: A day in the life of an OSS maintainer by Patrick Stephen...
PPTX
InnerSourcing - Worldwide enterprise development teams collaboration
PPTX
gdg_workshop 1 on web development and github
Community update on flink 1.9 and How to Contribute to Flink
Webinar: How to contribute to Apache Flink - Robert Metzger
How to Contribute to Apache Flink (and Flink at the Apache Software Foundation)
Apache Software Foundation: How To Contribute, with Apache Flink as Example (...
[API the Docs Paris 2018] Architecting DX
OSMC 2024 | Ignite: A day in the life of an OSS maintainer by Patrick Stephen...
InnerSourcing - Worldwide enterprise development teams collaboration
gdg_workshop 1 on web development and github

Similar to How to contribute to Apache Flink @ Seattle Flink meetup (20)

PDF
Rfc process in visuality
PDF
Twin Cities Salesforce.com Developer User Group Presentation April 2012
PPT
Teaching Online Pedagogical Repository: An Open Faculty Development Resource
PPTX
Project Management as an Art Form (DrupalCon Chicago 2011)
PPTX
Wrangle and Corral that License Agreement
PDF
OSMC 2021 | Contributing to open source with the example of icinga (1)
PPTX
Web2Expo NY 2009 Presentation
PDF
Contributing to Open Source (Lightning Talk version)
PDF
Improving developer documentation
PDF
Partner Tech Talk Q3: Q&A with PS - Migration and Upgrade
ODP
Fundamentals of Open Source Development
PPTX
Zero to 365 in One Hour: Processes and Tools for Effective SharePoint Solutions
PDF
Flink Forward SF 2017: Tzu-Li (Gordon) Tai - Joining the Scurry of Squirrels...
PDF
PDF
PPT
Facilitating Online Discussion in e-Learning
PPTX
PDF
Improving Your Apache Project's Image And Brand
PPT
My developer works
PPT
My developer works
Rfc process in visuality
Twin Cities Salesforce.com Developer User Group Presentation April 2012
Teaching Online Pedagogical Repository: An Open Faculty Development Resource
Project Management as an Art Form (DrupalCon Chicago 2011)
Wrangle and Corral that License Agreement
OSMC 2021 | Contributing to open source with the example of icinga (1)
Web2Expo NY 2009 Presentation
Contributing to Open Source (Lightning Talk version)
Improving developer documentation
Partner Tech Talk Q3: Q&A with PS - Migration and Upgrade
Fundamentals of Open Source Development
Zero to 365 in One Hour: Processes and Tools for Effective SharePoint Solutions
Flink Forward SF 2017: Tzu-Li (Gordon) Tai - Joining the Scurry of Squirrels...
Facilitating Online Discussion in e-Learning
Improving Your Apache Project's Image And Brand
My developer works
My developer works
Ad

More from Bowen Li (14)

PDF
Flink and Hive integration - unifying enterprise data processing systems
PDF
Apache Flink 101 - the rise of stream processing and beyond
PDF
Towards Apache Flink 2.0 - Unified Data Processing and Beyond, Bowen Li
PDF
Integrating Flink with Hive - Flink Forward SF 2019
PDF
Tensorflow data preparation on Apache Beam using Portable Flink Runner, Ankur...
PDF
AthenaX - Unified Stream & Batch Processing using SQL at Uber, Zhenqiu Huang,...
PDF
Community and Meetup Update, Seattle Flink Meetup, Feb 2019
PDF
Integrating Flink with Hive, Seattle Flink Meetup, Feb 2019
PDF
Status Update of Seattle Flink Meetup, Jun 2018
PDF
Streaming at Lyft, Gregory Fee, Seattle Flink Meetup, Jun 2018
PDF
Approximate queries and graph streams on Flink, theodore vasiloudis, seattle...
PDF
Stream processing with Apache Flink @ OfferUp
PDF
Apache Flink @ Alibaba - Seattle Apache Flink Meetup
PDF
Opening - Seattle Apache Flink Meetup
Flink and Hive integration - unifying enterprise data processing systems
Apache Flink 101 - the rise of stream processing and beyond
Towards Apache Flink 2.0 - Unified Data Processing and Beyond, Bowen Li
Integrating Flink with Hive - Flink Forward SF 2019
Tensorflow data preparation on Apache Beam using Portable Flink Runner, Ankur...
AthenaX - Unified Stream & Batch Processing using SQL at Uber, Zhenqiu Huang,...
Community and Meetup Update, Seattle Flink Meetup, Feb 2019
Integrating Flink with Hive, Seattle Flink Meetup, Feb 2019
Status Update of Seattle Flink Meetup, Jun 2018
Streaming at Lyft, Gregory Fee, Seattle Flink Meetup, Jun 2018
Approximate queries and graph streams on Flink, theodore vasiloudis, seattle...
Stream processing with Apache Flink @ OfferUp
Apache Flink @ Alibaba - Seattle Apache Flink Meetup
Opening - Seattle Apache Flink Meetup
Ad

Recently uploaded (20)

PPTX
MCN 401 KTU-2019-PPE KITS-MODULE 2.pptx
PPTX
Geodesy 1.pptx...............................................
PDF
PRIZ Academy - 9 Windows Thinking Where to Invest Today to Win Tomorrow.pdf
PPTX
CH1 Production IntroductoryConcepts.pptx
PDF
Evaluating the Democratization of the Turkish Armed Forces from a Normative P...
PDF
July 2025 - Top 10 Read Articles in International Journal of Software Enginee...
PDF
ETO & MEO Certificate of Competency Questions and Answers
PDF
Embodied AI: Ushering in the Next Era of Intelligent Systems
PPTX
Unit 5 BSP.pptxytrrftyyydfyujfttyczcgvcd
PPTX
Foundation to blockchain - A guide to Blockchain Tech
PPT
Project quality management in manufacturing
PDF
Well-logging-methods_new................
PPTX
bas. eng. economics group 4 presentation 1.pptx
PPTX
Welding lecture in detail for understanding
PPTX
OOP with Java - Java Introduction (Basics)
PPTX
Sustainable Sites - Green Building Construction
PPTX
MET 305 MODULE 1 KTU 2019 SCHEME 25.pptx
PDF
Model Code of Practice - Construction Work - 21102022 .pdf
PPTX
CYBER-CRIMES AND SECURITY A guide to understanding
PPTX
web development for engineering and engineering
MCN 401 KTU-2019-PPE KITS-MODULE 2.pptx
Geodesy 1.pptx...............................................
PRIZ Academy - 9 Windows Thinking Where to Invest Today to Win Tomorrow.pdf
CH1 Production IntroductoryConcepts.pptx
Evaluating the Democratization of the Turkish Armed Forces from a Normative P...
July 2025 - Top 10 Read Articles in International Journal of Software Enginee...
ETO & MEO Certificate of Competency Questions and Answers
Embodied AI: Ushering in the Next Era of Intelligent Systems
Unit 5 BSP.pptxytrrftyyydfyujfttyczcgvcd
Foundation to blockchain - A guide to Blockchain Tech
Project quality management in manufacturing
Well-logging-methods_new................
bas. eng. economics group 4 presentation 1.pptx
Welding lecture in detail for understanding
OOP with Java - Java Introduction (Basics)
Sustainable Sites - Green Building Construction
MET 305 MODULE 1 KTU 2019 SCHEME 25.pptx
Model Code of Practice - Construction Work - 21102022 .pdf
CYBER-CRIMES AND SECURITY A guide to understanding
web development for engineering and engineering

How to contribute to Apache Flink @ Seattle Flink meetup

  • 1. How to Contribute to Apache Flink Bowen Li Flink Committer, Engineer @ Alibaba Seattle Flink Meetup @ AWS May, 2019
  • 2. What will you learn today ● Roles and tools at Flink ● How to become a Flink contributor ● How to become a committer
  • 3. The Journey of Apache Flink
  • 4. Roles at Apache Flink Contributors PMC (21) Committers (45) ● PMC - Project Management Committee ● ASF - Apache Software Foundation PMC votes and elects new committer Committer is elected from active, committed contributors PMC Chair Permission to commit code <id>@apache.org email Oversees project: releases, health, legal, branding, infra Reports to ASF Board quarterly Report bugs, testing, contribute code & doc, support other users, community work, etc Users Run Flink apps, ask questions Some users proactively becomes contributors
  • 5. Tools at Apache Flink Communication Documentation Design Doc / Wiki / FLIP (Flink Improvement Proposal) Tasks Bugs / Features / Improvements https://issues.apache.org/jira/projects/FLINK Code
  • 6. Example Process for FLIP (Flink Improvement Proposal) Discuss and get Consensus Write Design Doc Create Issues Create PRs Address Comments Review Build & Test PR Merged Create FLIP
  • 7. How to become a Flink contributor?
  • 8. ● dev@flink.apache.org is the primary channel for discussion and decision-making among Flink developers ○ FLIP, design discussion, roadmap planning, release voting & scheduling ○ All other miscellaneous development questions ○ Bring up your opinions and ideas! ○ See https://flink.apache.org/community.html#mailing-lists Contibute to Flink Development - Join the Discussions!
  • 9. ● Apache projects vote on: releases, procedural/code changes, designs ● “+1 / -1, because …” ● Lazy consensus: Assume consensus after 72 hours if no one objects ○ Used for smaller changes, procedural changes, … ● Most Important Vote: Releases ○ Duration of at least 72 hours (workdays) ○ Contributors can help with ■ legal checks - checksums, licenses ■ functional checks - perf, upgrade/backward compatibility test, e2e test, manual test ■ See https://cwiki.apache.org/confluence/display/FLINK/Verifying+a+Flink+Release Voting: How decisions are made
  • 10. Contibute to Flink Development - Code and PR review JIRA Ticket Get consensus on your proposed change Find a committer willing to review and merge Implement Pull Request Review & Address Comments Merge! dev@ discussion Usually for bigger changes with a design doc or FLIP
  • 11. Contibute to Flink Development - Code and PR review Can’t emphasize more on getting committers’ consensus on your proposal before implementing any code for bigger changes! So often that contributors wasted their time if their proposed solution is rejected... Tip for new contributors!
  • 12. How to find a committer who can “sponsor” you? Each committer is usually familiar with and responsible for a few modules. Which committer can help you? ● the one that responds to your email or comment in your JIRA ● the one modifies related files and modules by look thru commit history ● the commonly acknowledged one ○ you’ll get more sense of it when being long enough in community
  • 13. Contibute to Flink Development - Code and PR review Machine Learning Query Planner DataStream API Connectors Metrics State/Checkpoint/Savepoint Runtime Cluster & Resource Management Python/Table API, SQL, SQL Client Modules that you can contribute to, including but not limited to
  • 14. Contibute to Flink Development - PR review
  • 15. Contibute to Flink Development - Documentations
  • 16. Contibute to Flink Development - Documentations git clone https://github.com/apache/flink cd flink/docs ● ○ ● ● ○ ●
  • 18. Contibute to Flink Development - Documentations … …
  • 19. Contibute to Evangelism ● Meetups ○ Speak about Flink at our Seattle Flink meetup or other meetups ○ Help host Flink meetup event ● Conferences ○ Give talks on Flink at conferences ● Blogs ○ Share your thoughts and experience on Flink ● Online and Social Networks ○ Talk about Flink on Twitter, Linkedin, StackShare, etc
  • 20. Contibute to User Support ● user@flink.apache.org is the primary support channels where contributors can help their peers and answer questions ○ ~150+ emails/week, a couple thousands of subscribers ● Stack Overflow ○ [apache-flink] tag: 2800 questions, 1100 unanswered
  • 21. Problem and Solution Not get immediate responses Async Communication Response can be in days Consensus can take weeks Committer will tell you why, and help to come up with alternatives Learn requirements on code quality Emphasize on coding style, comments, and doc Code review is too picky Ideas/proposals are rejected Contributors new to the community are often upset about some situations. Here are the common expectations to have and what you can do
  • 22. How to become a Committer: Requirements ● Formally: PMC will vote on a community member to become a committer (on private@) ● Understanding of “The Apache Way”, good community engagement ● Meritocracy ○ Merit are earned with good, consistent contributions (those in previous slides) and demonstrated expertise over a long period of time ● See https://flink.apache.org/how-to-contribute.html#how-to-become-a-committer
  • 23. Thanks! Twitter @Bowen__Li Reference: How to contribute to Apache Flink, Robert Metzger, 2019 Get involved in the Apache Flink Community, Xingcan Cui, 2018