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
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
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