SlideShare a Scribd company logo
How to
contribute to
Apache Flink®
Robert Metzger
Flink PMC, Software Engineer @ Ververica
rmetzger@apache.org
@rmetzger_
What you will learn today
• What is the Apache Software Foundation
• What are the roles at an Apache project
• How to become a committer
• How to contribute to Apache Flink
• The mailing lists
• The documentation
• Contributing code
• Q & A / Hands-on
Flink and the Apache Software Foundation
• Flink is one of more than 300 top level projects at the ASF
Independent open
source project:
"Stratosphere"
Apache Incubator:
“Apache Flink
(incubating)”
Top level Apache
project
Attic
2009 – 2014 April 2014 – Dec 2014 Since Dec 2014 Hopefully never J
Apache Software Foundation
• Celebrating 20 years of ASF this year
• Initially about Apache HTTP server, “a
patchy server”
• Today, 300+ open source projects (+ 52
incubating)
• 730 members and 7000+ committers
• All volunteer, self-organized, decentralized
• Providing projects with legal and
infrastructure support, and a blueprint
and experience for successful open source
21 founding members
[photo attribution (CC BY) Mark Cox. Tagged image at https://www.flickr.com/photos/iamamoose/63963722/in/album-1381277/ ; gallery at https://www.flickr.com/photos/iamamoose/albums/1381277]
“Community over code”
Webinar:  How to contribute to Apache Flink - Robert Metzger
Apache License 2.0
• Top 3 open source license, used by all ASF projects and many others
• Business friendly (derivative work is allowed to be licensed
differently)
Recommended website: https://tldrlegal.com/license/apache-license-2.0-(apache-2.0)
Roles at the ASF (& Flink)
ASF Members
ASF Board of
directors Flink PMC Chair
Flink PMC (20) Project Management
Committee
Flink Committers
(45)
Contributors &
Users
Project oversight: review
releases, long-term health
of project
Permission to commit code,
<user>@apache.org email
Implementation, testing,
documentation, user
support etc.
Day-to-day oversight of
the foundation
Control & “ownership”
members@a.o
board@a.o
private@f.a.o
dev@f.a.o
user@f.a.o
user-zh@f.a.o
commits@f.a.o
issues@f.a.o
public
builds@f.a.o
Becoming a Flink committer: Requirements
• Formally: PMC will vote on a community member to become a
committer (on private@)
• Good contributions over a longer period of time, good technical
oversights and experience (for reviews and discussions)
• Understanding of “The Apache Way”, good community engagement
Contribute to User Support
• user@flink.apache.org (and user-zh@f.a.o) are the primary support
channels: ~150 emails/week. 1000+ subscribers
• Error messages, configuration, API
• Architecture / Design questions
• Stack Overflow
• [apache-flink] tag: 2800 questions,
1100 unanswered
• JIRA (Bug tracker)
• Often, incoming bug reports are ”just” problems
using Flink
Sign up & answer questions
Contribute to
Evangelism
• Meetups
• Speak at your local meetup
• Host a meetup group in your city (Ververica
can help you!)
• Help with venue, organization etc.
• Conferences
• Submit talks at conferences
• Blogs
• Share your experience
• Twitter, LinkedIn, Facebook
• Help spreading the word
Contribute to Flink’s development
• dev@flink.apache.org is the main communication and decision-
making channel of Flink
• Discussion of FLIPs (Flink Improvement Proposals)
• Roadmap planning, release scheduling
• Release voting
• Community health
• All other development and community-related questions (which libraries do
we use, how do we approach large changes)
Join the discussions
Voting: How decisions are being made
• Apache projects vote on: releases, committers, PMC members, procedural
changes, code changes
• +1 / -1, because …
• Most important vote: releases
• Duration of at least 72 hours (workdays)
• Legal checks (checksums, signatures, license documentation) and functional checks (end to
end tests, manual tests, performance)
• See: https://cwiki.apache.org/confluence/display/FLINK/Verifying+a+Flink+Release
• Lazy approval: Assume consensus after 72 hours, if nobody objects
• Used for code changes, smaller proposals, procedural changes, ...
• Currently under discussion: Flink Bylaws:
https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=120731026
Contribute to Flink’s development
• Contribute Documentation (or website)
git clone https://github.com/apache/flink
cd flink/docs/docker
./run.sh
• An easy way to have a lot of impact on Flink
• Jira tickets in component “Documentation” (currently 160
unresolved)
• Small fixes as “[hotfix]” PRs, larger changes through JIRA->PR process
• See also: https://flink.apache.org/contribute-documentation.html
Contribute to Flink’s development: Code
• Contribute code
JIRA Ticket: Get consensus Implement Review Merge
dev@ discussion &
FLIP
Get buy in on your change and find a
committer willing to review and merge
Involved changes often
require a design
document
Reviews happen in pull
requests in a 4-step
process
Contribute to Flink’s development: JIRA
• A good JIRA ticket …
• … is created ahead of time
• ... Clearly describes the problem to solve
• … is assigned to a component, has the right priority
• Get buy-in from a committer … you will need somebody to review and
merge your change later on
• Expect a few days till there’s a first reaction (depending on the
component, complexity) and weeks till there’s consensus
Contribute to Flink’s development: Pull
Request Review
Description
• Formal requirements: JIRA ID in title, description of the change, clean
history (commits prefixed with JIRA ID)
Consensus
• Check if there’s agreement to merge this change as is
• Should not be a problem if JIRA has been “approved”
Architecture
• Architectural fit within Flink
Quality
• Code Quality: documentation, error handling, concurrency / threading,
dependencies
Contribute to Flink’s development: Pull
Request Review: Notes
• Be patient: Reviews take time
• In particular when a release is happening
• Contribute reviews: If you don’t have a feature / fix to contribute,
help checking pull requests in the “quality” stage (see label)
• Stay in touch with the committer managing your contribution
Conclusion
• Introduction on Apache Flink and the ASF
• There are many ways to contribute
• User support
• Project steering
• Evangelism
• Documentation / website
• Code reviews
• Fixes / features
• Even if it sometimes doesn’t seem so: Contributions are very
welcome!
• Reach out to me rmetzger@apache.org / @rmetzger_ if you have
questions
Check out the schedule & keynotes
on our website
Q & A
Bonus: Hands-on session to help people setting up their development
environments
Robert Metzger
Flink PMC, Software Engineer @ Ververica
rmetzger@apache.org
@rmetzger_

More Related Content

PDF
Introducing BinarySortedMultiMap - A new Flink state primitive to boost your ...
PDF
Apache Kafka Architecture & Fundamentals Explained
PPTX
Evening out the uneven: dealing with skew in Flink
PPTX
Tuning Apache Kafka Connectors for Flink.pptx
PDF
Building a fully managed stream processing platform on Flink at scale for Lin...
PPTX
Where is my bottleneck? Performance troubleshooting in Flink
PPTX
Introduction to Apache Kafka
PDF
Flink powered stream processing platform at Pinterest
Introducing BinarySortedMultiMap - A new Flink state primitive to boost your ...
Apache Kafka Architecture & Fundamentals Explained
Evening out the uneven: dealing with skew in Flink
Tuning Apache Kafka Connectors for Flink.pptx
Building a fully managed stream processing platform on Flink at scale for Lin...
Where is my bottleneck? Performance troubleshooting in Flink
Introduction to Apache Kafka
Flink powered stream processing platform at Pinterest

What's hot (20)

PPTX
Apache Kafka Best Practices
PPTX
PPTX
A visual introduction to Apache Kafka
PDF
Getting Started with Confluent Schema Registry
PPTX
From cache to in-memory data grid. Introduction to Hazelcast.
PPTX
Apache Flink in the Cloud-Native Era
PPTX
Hive: Loading Data
PPTX
Kafka 101
PPTX
APACHE KAFKA / Kafka Connect / Kafka Streams
PPTX
Hadoop configuration & performance tuning
PPTX
Introduction to Kafka Cruise Control
PDF
Deploying Flink on Kubernetes - David Anderson
PPTX
Stephan Ewen - Experiences running Flink at Very Large Scale
PPTX
Dynamic Rule-based Real-time Market Data Alerts
PPTX
Druid deep dive
PPTX
Using Queryable State for Fun and Profit
PDF
Tame the small files problem and optimize data layout for streaming ingestion...
PDF
A Deep Dive into Kafka Controller
PDF
Kafka streams windowing behind the curtain
PPTX
Autoscaling Flink with Reactive Mode
Apache Kafka Best Practices
A visual introduction to Apache Kafka
Getting Started with Confluent Schema Registry
From cache to in-memory data grid. Introduction to Hazelcast.
Apache Flink in the Cloud-Native Era
Hive: Loading Data
Kafka 101
APACHE KAFKA / Kafka Connect / Kafka Streams
Hadoop configuration & performance tuning
Introduction to Kafka Cruise Control
Deploying Flink on Kubernetes - David Anderson
Stephan Ewen - Experiences running Flink at Very Large Scale
Dynamic Rule-based Real-time Market Data Alerts
Druid deep dive
Using Queryable State for Fun and Profit
Tame the small files problem and optimize data layout for streaming ingestion...
A Deep Dive into Kafka Controller
Kafka streams windowing behind the curtain
Autoscaling Flink with Reactive Mode
Ad

Similar to Webinar: How to contribute to Apache Flink - Robert Metzger (20)

PDF
Community update on flink 1.9 and How to Contribute to Flink
PDF
How to contribute to Apache Flink @ Seattle Flink meetup
ODP
But We're Already Open Source! Why Would I Want To Bring My Code To Apache?
PDF
But we're already open source! Why would I want to bring my code to Apache?
PDF
Flink Forward SF 2017: Tzu-Li (Gordon) Tai - Joining the Scurry of Squirrels...
PDF
The Apache Way
PDF
7 Apache Process Cloudstack Developer Day
PPTX
Zero to 365 in One Hour: Processes and Tools for Effective SharePoint Solutions
PPTX
Guide to open source
PPTX
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
PDF
Code the docs-yu liu
PPTX
Introduction to Open Source, Apache and Apache Way
PDF
Créer une communauté open source: pourquoi ? comment ?
PPTX
contributing to open source in just about any skill
PDF
IT Systems for Knowledge Management used in Software Engineering (2010)
PDF
Alfresco Day Madrid - Toni de la Fuente - Roadmap 2011
PDF
Alfresco day madrid toni de la fuente - roadmap 2011
PDF
PR workflow
PPTX
Apache Flink - Community Update January 2015
Community update on flink 1.9 and How to Contribute to Flink
How to contribute to Apache Flink @ Seattle Flink meetup
But We're Already Open Source! Why Would I Want To Bring My Code To Apache?
But we're already open source! Why would I want to bring my code to Apache?
Flink Forward SF 2017: Tzu-Li (Gordon) Tai - Joining the Scurry of Squirrels...
The Apache Way
7 Apache Process Cloudstack Developer Day
Zero to 365 in One Hour: Processes and Tools for Effective SharePoint Solutions
Guide to open source
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
Code the docs-yu liu
Introduction to Open Source, Apache and Apache Way
Créer une communauté open source: pourquoi ? comment ?
contributing to open source in just about any skill
IT Systems for Knowledge Management used in Software Engineering (2010)
Alfresco Day Madrid - Toni de la Fuente - Roadmap 2011
Alfresco day madrid toni de la fuente - roadmap 2011
PR workflow
Apache Flink - Community Update January 2015
Ad

More from Ververica (20)

PDF
2020-05-06 Apache Flink Meetup London: The Easiest Way to Get Operational wit...
PDF
Webinar: Deep Dive on Apache Flink State - Seth Wiesman
PDF
Webinar: 99 Ways to Enrich Streaming Data with Apache Flink - Konstantin Knauf
PDF
Webinar: Detecting row patterns with Flink SQL - Dawid Wysakowicz
PPTX
Webinar: Flink SQL in Action - Fabian Hueske
PPTX
2018-04 Kafka Summit London: Stephan Ewen - "Apache Flink and Apache Kafka fo...
PDF
2018-01 Seattle Apache Flink Meetup at OfferUp, Opening Remarks and Talk 2
PPTX
Fabian Hueske - Stream Analytics with SQL on Apache Flink
PDF
Tzu-Li (Gordon) Tai - Stateful Stream Processing with Apache Flink
PPTX
Kostas Kloudas - Complex Event Processing with Flink: the state of FlinkCEP
PDF
Aljoscha Krettek - Portable stateful big data processing in Apache Beam
PDF
Aljoscha Krettek - Apache Flink® and IoT: How Stateful Event-Time Processing ...
PDF
Timo Walther - Table & SQL API - unified APIs for batch and stream processing
PDF
Apache Flink Meetup: Sanjar Akhmedov - Joining Infinity – Windowless Stream ...
PPTX
Kostas Kloudas - Extending Flink's Streaming APIs
PPTX
Fabian Hueske - Stream Analytics with SQL on Apache Flink
PPTX
Stephan Ewen - Stream Processing as a Foundational Paradigm and Apache Flink'...
PDF
Stefan Richter - A look at Flink 1.2 and beyond @ Berlin Meetup
PPTX
Robert Metzger - Apache Flink Community Updates November 2016 @ Berlin Meetup
PPTX
Keynote: Stephan Ewen - Stream Processing as a Foundational Paradigm and Apac...
2020-05-06 Apache Flink Meetup London: The Easiest Way to Get Operational wit...
Webinar: Deep Dive on Apache Flink State - Seth Wiesman
Webinar: 99 Ways to Enrich Streaming Data with Apache Flink - Konstantin Knauf
Webinar: Detecting row patterns with Flink SQL - Dawid Wysakowicz
Webinar: Flink SQL in Action - Fabian Hueske
2018-04 Kafka Summit London: Stephan Ewen - "Apache Flink and Apache Kafka fo...
2018-01 Seattle Apache Flink Meetup at OfferUp, Opening Remarks and Talk 2
Fabian Hueske - Stream Analytics with SQL on Apache Flink
Tzu-Li (Gordon) Tai - Stateful Stream Processing with Apache Flink
Kostas Kloudas - Complex Event Processing with Flink: the state of FlinkCEP
Aljoscha Krettek - Portable stateful big data processing in Apache Beam
Aljoscha Krettek - Apache Flink® and IoT: How Stateful Event-Time Processing ...
Timo Walther - Table & SQL API - unified APIs for batch and stream processing
Apache Flink Meetup: Sanjar Akhmedov - Joining Infinity – Windowless Stream ...
Kostas Kloudas - Extending Flink's Streaming APIs
Fabian Hueske - Stream Analytics with SQL on Apache Flink
Stephan Ewen - Stream Processing as a Foundational Paradigm and Apache Flink'...
Stefan Richter - A look at Flink 1.2 and beyond @ Berlin Meetup
Robert Metzger - Apache Flink Community Updates November 2016 @ Berlin Meetup
Keynote: Stephan Ewen - Stream Processing as a Foundational Paradigm and Apac...

Recently uploaded (20)

PDF
cuic standard and advanced reporting.pdf
PPTX
Big Data Technologies - Introduction.pptx
PDF
Advanced Soft Computing BINUS July 2025.pdf
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Machine learning based COVID-19 study performance prediction
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Advanced IT Governance
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
GDG Cloud Iasi [PUBLIC] Florian Blaga - Unveiling the Evolution of Cybersecur...
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
solutions_manual_-_materials___processing_in_manufacturing__demargo_.pdf
PDF
Electronic commerce courselecture one. Pdf
cuic standard and advanced reporting.pdf
Big Data Technologies - Introduction.pptx
Advanced Soft Computing BINUS July 2025.pdf
“AI and Expert System Decision Support & Business Intelligence Systems”
The AUB Centre for AI in Media Proposal.docx
Machine learning based COVID-19 study performance prediction
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Review of recent advances in non-invasive hemoglobin estimation
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
20250228 LYD VKU AI Blended-Learning.pptx
Advanced IT Governance
Advanced methodologies resolving dimensionality complications for autism neur...
Network Security Unit 5.pdf for BCA BBA.
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
GDG Cloud Iasi [PUBLIC] Florian Blaga - Unveiling the Evolution of Cybersecur...
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Mobile App Security Testing_ A Comprehensive Guide.pdf
solutions_manual_-_materials___processing_in_manufacturing__demargo_.pdf
Electronic commerce courselecture one. Pdf

Webinar: How to contribute to Apache Flink - Robert Metzger

  • 1. How to contribute to Apache Flink® Robert Metzger Flink PMC, Software Engineer @ Ververica rmetzger@apache.org @rmetzger_
  • 2. What you will learn today • What is the Apache Software Foundation • What are the roles at an Apache project • How to become a committer • How to contribute to Apache Flink • The mailing lists • The documentation • Contributing code • Q & A / Hands-on
  • 3. Flink and the Apache Software Foundation • Flink is one of more than 300 top level projects at the ASF Independent open source project: "Stratosphere" Apache Incubator: “Apache Flink (incubating)” Top level Apache project Attic 2009 – 2014 April 2014 – Dec 2014 Since Dec 2014 Hopefully never J
  • 4. Apache Software Foundation • Celebrating 20 years of ASF this year • Initially about Apache HTTP server, “a patchy server” • Today, 300+ open source projects (+ 52 incubating) • 730 members and 7000+ committers • All volunteer, self-organized, decentralized • Providing projects with legal and infrastructure support, and a blueprint and experience for successful open source 21 founding members [photo attribution (CC BY) Mark Cox. Tagged image at https://www.flickr.com/photos/iamamoose/63963722/in/album-1381277/ ; gallery at https://www.flickr.com/photos/iamamoose/albums/1381277] “Community over code”
  • 6. Apache License 2.0 • Top 3 open source license, used by all ASF projects and many others • Business friendly (derivative work is allowed to be licensed differently) Recommended website: https://tldrlegal.com/license/apache-license-2.0-(apache-2.0)
  • 7. Roles at the ASF (& Flink) ASF Members ASF Board of directors Flink PMC Chair Flink PMC (20) Project Management Committee Flink Committers (45) Contributors & Users Project oversight: review releases, long-term health of project Permission to commit code, <user>@apache.org email Implementation, testing, documentation, user support etc. Day-to-day oversight of the foundation Control & “ownership” members@a.o board@a.o private@f.a.o dev@f.a.o user@f.a.o user-zh@f.a.o commits@f.a.o issues@f.a.o public builds@f.a.o
  • 8. Becoming a Flink committer: Requirements • Formally: PMC will vote on a community member to become a committer (on private@) • Good contributions over a longer period of time, good technical oversights and experience (for reviews and discussions) • Understanding of “The Apache Way”, good community engagement
  • 9. Contribute to User Support • user@flink.apache.org (and user-zh@f.a.o) are the primary support channels: ~150 emails/week. 1000+ subscribers • Error messages, configuration, API • Architecture / Design questions • Stack Overflow • [apache-flink] tag: 2800 questions, 1100 unanswered • JIRA (Bug tracker) • Often, incoming bug reports are ”just” problems using Flink Sign up & answer questions
  • 10. Contribute to Evangelism • Meetups • Speak at your local meetup • Host a meetup group in your city (Ververica can help you!) • Help with venue, organization etc. • Conferences • Submit talks at conferences • Blogs • Share your experience • Twitter, LinkedIn, Facebook • Help spreading the word
  • 11. Contribute to Flink’s development • dev@flink.apache.org is the main communication and decision- making channel of Flink • Discussion of FLIPs (Flink Improvement Proposals) • Roadmap planning, release scheduling • Release voting • Community health • All other development and community-related questions (which libraries do we use, how do we approach large changes) Join the discussions
  • 12. Voting: How decisions are being made • Apache projects vote on: releases, committers, PMC members, procedural changes, code changes • +1 / -1, because … • Most important vote: releases • Duration of at least 72 hours (workdays) • Legal checks (checksums, signatures, license documentation) and functional checks (end to end tests, manual tests, performance) • See: https://cwiki.apache.org/confluence/display/FLINK/Verifying+a+Flink+Release • Lazy approval: Assume consensus after 72 hours, if nobody objects • Used for code changes, smaller proposals, procedural changes, ... • Currently under discussion: Flink Bylaws: https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=120731026
  • 13. Contribute to Flink’s development • Contribute Documentation (or website) git clone https://github.com/apache/flink cd flink/docs/docker ./run.sh • An easy way to have a lot of impact on Flink • Jira tickets in component “Documentation” (currently 160 unresolved) • Small fixes as “[hotfix]” PRs, larger changes through JIRA->PR process • See also: https://flink.apache.org/contribute-documentation.html
  • 14. Contribute to Flink’s development: Code • Contribute code JIRA Ticket: Get consensus Implement Review Merge dev@ discussion & FLIP Get buy in on your change and find a committer willing to review and merge Involved changes often require a design document Reviews happen in pull requests in a 4-step process
  • 15. Contribute to Flink’s development: JIRA • A good JIRA ticket … • … is created ahead of time • ... Clearly describes the problem to solve • … is assigned to a component, has the right priority • Get buy-in from a committer … you will need somebody to review and merge your change later on • Expect a few days till there’s a first reaction (depending on the component, complexity) and weeks till there’s consensus
  • 16. Contribute to Flink’s development: Pull Request Review Description • Formal requirements: JIRA ID in title, description of the change, clean history (commits prefixed with JIRA ID) Consensus • Check if there’s agreement to merge this change as is • Should not be a problem if JIRA has been “approved” Architecture • Architectural fit within Flink Quality • Code Quality: documentation, error handling, concurrency / threading, dependencies
  • 17. Contribute to Flink’s development: Pull Request Review: Notes • Be patient: Reviews take time • In particular when a release is happening • Contribute reviews: If you don’t have a feature / fix to contribute, help checking pull requests in the “quality” stage (see label) • Stay in touch with the committer managing your contribution
  • 18. Conclusion • Introduction on Apache Flink and the ASF • There are many ways to contribute • User support • Project steering • Evangelism • Documentation / website • Code reviews • Fixes / features • Even if it sometimes doesn’t seem so: Contributions are very welcome! • Reach out to me rmetzger@apache.org / @rmetzger_ if you have questions
  • 19. Check out the schedule & keynotes on our website
  • 20. Q & A Bonus: Hands-on session to help people setting up their development environments Robert Metzger Flink PMC, Software Engineer @ Ververica rmetzger@apache.org @rmetzger_