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”
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
Comitee
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
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 consensus: Assume consensus after 72 hours, if nobody objects
• Used for smaller changes, procedural changes, ...
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
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

What's hot

Graph Databases for SQL Server Professionals - SQLSaturday #350 Winnipeg
Graph Databases for SQL Server Professionals - SQLSaturday #350 WinnipegGraph Databases for SQL Server Professionals - SQLSaturday #350 Winnipeg
Graph Databases for SQL Server Professionals - SQLSaturday #350 Winnipeg
Stéphane Fréchette
 
Jive, dropbox and other integrations
Jive, dropbox and other integrationsJive, dropbox and other integrations
Jive, dropbox and other integrations
Jared Ottley
 
Micro Services - Neither Micro Nor Service
Micro Services - Neither Micro Nor ServiceMicro Services - Neither Micro Nor Service
Micro Services - Neither Micro Nor Service
Eberhard Wolff
 
JIRA5 Introduction
JIRA5 IntroductionJIRA5 Introduction
Collaborating on GitHub for Open Source Documentation
Collaborating on GitHub for Open Source DocumentationCollaborating on GitHub for Open Source Documentation
Collaborating on GitHub for Open Source Documentation
Anne Gentle
 
Serverless: when functions and GitOps collide
Serverless: when functions and GitOps collideServerless: when functions and GitOps collide
Serverless: when functions and GitOps collide
Edward Wilde
 
O365Con19 - Sharing Code Efficiently in your Organisation - Elio Struyf
O365Con19 - Sharing Code Efficiently in your Organisation - Elio StruyfO365Con19 - Sharing Code Efficiently in your Organisation - Elio Struyf
O365Con19 - Sharing Code Efficiently in your Organisation - Elio Struyf
NCCOMMS
 
Micro Service – The New Architecture Paradigm
Micro Service – The New Architecture ParadigmMicro Service – The New Architecture Paradigm
Micro Service – The New Architecture Paradigm
Eberhard Wolff
 
Design for scale
Design for scaleDesign for scale
Design for scale
Doug Lampe
 
Your API is Bad and You Should Feel Bad
Your API is Bad and You Should Feel BadYour API is Bad and You Should Feel Bad
Your API is Bad and You Should Feel Bad
Amanda Folson
 
How to use Salesforce Workbench like a Pro
How to use Salesforce Workbench like a ProHow to use Salesforce Workbench like a Pro
How to use Salesforce Workbench like a Pro
Atul Gupta(8X)
 
Openoffice extensions and templates
Openoffice extensions and templatesOpenoffice extensions and templates
Openoffice extensions and templates
Roberto Galoppini
 
Version Control, Writers, and Workflows
Version Control, Writers, and WorkflowsVersion Control, Writers, and Workflows
Version Control, Writers, and Workflows
stc-siliconvalley
 
It Takes a Village to Make WordPress
It Takes a Village to Make WordPressIt Takes a Village to Make WordPress
It Takes a Village to Make WordPress
DrewAPicture
 
Continuous Delivery and Micro Services - A Symbiosis
Continuous Delivery and Micro Services - A SymbiosisContinuous Delivery and Micro Services - A Symbiosis
Continuous Delivery and Micro Services - A Symbiosis
Eberhard Wolff
 
Kubernetes Issues Management and Upstream Development_sahdevpzala_11302017
Kubernetes Issues Management and Upstream Development_sahdevpzala_11302017Kubernetes Issues Management and Upstream Development_sahdevpzala_11302017
Kubernetes Issues Management and Upstream Development_sahdevpzala_11302017
Sahdev Zala
 
Alfresco 4 Beta Program
Alfresco 4 Beta ProgramAlfresco 4 Beta Program
Alfresco 4 Beta Program
Paul Hampton
 
AD1545 - Extending the XPages Extension Library
AD1545 - Extending the XPages Extension LibraryAD1545 - Extending the XPages Extension Library
AD1545 - Extending the XPages Extension Library
paidi_ed
 
Intranet show and_tell_2010
Intranet show and_tell_2010Intranet show and_tell_2010
Intranet show and_tell_2010
Charlie Hull
 
All Topics of HTML
All Topics of HTML All Topics of HTML
All Topics of HTML
GetStudy
 

What's hot (20)

Graph Databases for SQL Server Professionals - SQLSaturday #350 Winnipeg
Graph Databases for SQL Server Professionals - SQLSaturday #350 WinnipegGraph Databases for SQL Server Professionals - SQLSaturday #350 Winnipeg
Graph Databases for SQL Server Professionals - SQLSaturday #350 Winnipeg
 
Jive, dropbox and other integrations
Jive, dropbox and other integrationsJive, dropbox and other integrations
Jive, dropbox and other integrations
 
Micro Services - Neither Micro Nor Service
Micro Services - Neither Micro Nor ServiceMicro Services - Neither Micro Nor Service
Micro Services - Neither Micro Nor Service
 
JIRA5 Introduction
JIRA5 IntroductionJIRA5 Introduction
JIRA5 Introduction
 
Collaborating on GitHub for Open Source Documentation
Collaborating on GitHub for Open Source DocumentationCollaborating on GitHub for Open Source Documentation
Collaborating on GitHub for Open Source Documentation
 
Serverless: when functions and GitOps collide
Serverless: when functions and GitOps collideServerless: when functions and GitOps collide
Serverless: when functions and GitOps collide
 
O365Con19 - Sharing Code Efficiently in your Organisation - Elio Struyf
O365Con19 - Sharing Code Efficiently in your Organisation - Elio StruyfO365Con19 - Sharing Code Efficiently in your Organisation - Elio Struyf
O365Con19 - Sharing Code Efficiently in your Organisation - Elio Struyf
 
Micro Service – The New Architecture Paradigm
Micro Service – The New Architecture ParadigmMicro Service – The New Architecture Paradigm
Micro Service – The New Architecture Paradigm
 
Design for scale
Design for scaleDesign for scale
Design for scale
 
Your API is Bad and You Should Feel Bad
Your API is Bad and You Should Feel BadYour API is Bad and You Should Feel Bad
Your API is Bad and You Should Feel Bad
 
How to use Salesforce Workbench like a Pro
How to use Salesforce Workbench like a ProHow to use Salesforce Workbench like a Pro
How to use Salesforce Workbench like a Pro
 
Openoffice extensions and templates
Openoffice extensions and templatesOpenoffice extensions and templates
Openoffice extensions and templates
 
Version Control, Writers, and Workflows
Version Control, Writers, and WorkflowsVersion Control, Writers, and Workflows
Version Control, Writers, and Workflows
 
It Takes a Village to Make WordPress
It Takes a Village to Make WordPressIt Takes a Village to Make WordPress
It Takes a Village to Make WordPress
 
Continuous Delivery and Micro Services - A Symbiosis
Continuous Delivery and Micro Services - A SymbiosisContinuous Delivery and Micro Services - A Symbiosis
Continuous Delivery and Micro Services - A Symbiosis
 
Kubernetes Issues Management and Upstream Development_sahdevpzala_11302017
Kubernetes Issues Management and Upstream Development_sahdevpzala_11302017Kubernetes Issues Management and Upstream Development_sahdevpzala_11302017
Kubernetes Issues Management and Upstream Development_sahdevpzala_11302017
 
Alfresco 4 Beta Program
Alfresco 4 Beta ProgramAlfresco 4 Beta Program
Alfresco 4 Beta Program
 
AD1545 - Extending the XPages Extension Library
AD1545 - Extending the XPages Extension LibraryAD1545 - Extending the XPages Extension Library
AD1545 - Extending the XPages Extension Library
 
Intranet show and_tell_2010
Intranet show and_tell_2010Intranet show and_tell_2010
Intranet show and_tell_2010
 
All Topics of HTML
All Topics of HTML All Topics of HTML
All Topics of HTML
 

Similar to How to Contribute to Apache Flink (and Flink at the Apache Software Foundation)

Community update on flink 1.9 and How to Contribute to Flink
Community update on flink 1.9 and How to Contribute to FlinkCommunity update on flink 1.9 and How to Contribute to Flink
Community update on flink 1.9 and How to Contribute to Flink
Bowen Li
 
How to contribute to Apache Flink @ Seattle Flink meetup
How to contribute to Apache Flink @ Seattle Flink meetupHow to contribute to Apache Flink @ Seattle Flink meetup
How to contribute to Apache Flink @ Seattle Flink meetup
Bowen Li
 
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?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?
gagravarr
 
Flink Forward SF 2017: Tzu-Li (Gordon) Tai - Joining the Scurry of Squirrels...
Flink Forward SF 2017: Tzu-Li (Gordon) Tai -  Joining the Scurry of Squirrels...Flink Forward SF 2017: Tzu-Li (Gordon) Tai -  Joining the Scurry of Squirrels...
Flink Forward SF 2017: Tzu-Li (Gordon) Tai - Joining the Scurry of Squirrels...
Flink Forward
 
7 Apache Process Cloudstack Developer Day
7 Apache Process Cloudstack Developer Day7 Apache Process Cloudstack Developer Day
7 Apache Process Cloudstack Developer Day
Kimihiko Kitase
 
Zero to 365 in One Hour: Processes and Tools for Effective SharePoint Solutions
Zero to 365 in One Hour: Processes and Tools for Effective SharePoint SolutionsZero to 365 in One Hour: Processes and Tools for Effective SharePoint Solutions
Zero to 365 in One Hour: Processes and Tools for Effective SharePoint Solutions
Regroove
 
Management de communaute
Management de communauteManagement de communaute
Guide to open source
Guide to open source Guide to open source
Guide to open source
Javier Perez
 
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
Lucas Jellema
 
Code the docs-yu liu
Code the docs-yu liuCode the docs-yu liu
Code the docs-yu liu
StreamNative
 
Introduction to Open Source, Apache and Apache Way
Introduction to Open Source, Apache and Apache WayIntroduction to Open Source, Apache and Apache Way
Introduction to Open Source, Apache and Apache Way
Srinath Perera
 
Créer une communauté open source: pourquoi ? comment ?
Créer une communauté open source: pourquoi ? comment ?Créer une communauté open source: pourquoi ? comment ?
Créer une communauté open source: pourquoi ? comment ?
Stefane Fermigier
 
Alfresco Day Madrid - Toni de la Fuente - Roadmap 2011
Alfresco Day Madrid - Toni de la Fuente - Roadmap 2011Alfresco Day Madrid - Toni de la Fuente - Roadmap 2011
Alfresco Day Madrid - Toni de la Fuente - Roadmap 2011
Toni de la Fuente
 
Alfresco day madrid toni de la fuente - roadmap 2011
Alfresco day madrid   toni de la fuente - roadmap 2011Alfresco day madrid   toni de la fuente - roadmap 2011
Alfresco day madrid toni de la fuente - roadmap 2011
Alfresco Software
 
Apache Flink - Community Update January 2015
Apache Flink - Community Update January 2015Apache Flink - Community Update January 2015
Apache Flink - Community Update January 2015
Fabian Hueske
 
PR workflow
PR workflowPR workflow
PR workflow
Weiqiang Zhuang
 
IT Systems for Knowledge Management used in Software Engineering (2010)
IT Systems for Knowledge Management used in Software Engineering (2010)IT Systems for Knowledge Management used in Software Engineering (2010)
IT Systems for Knowledge Management used in Software Engineering (2010)
Peter Kofler
 
VA Smalltalk Update
VA Smalltalk UpdateVA Smalltalk Update
VA Smalltalk Update
ESUG
 
The Apache Way: A Proven Way Toward Success
The Apache Way: A Proven Way Toward SuccessThe Apache Way: A Proven Way Toward Success
The Apache Way: A Proven Way Toward Success
Evans Ye
 
Cms integration of apache solr how we did it.
Cms integration of apache solr   how we did it.Cms integration of apache solr   how we did it.
Cms integration of apache solr how we did it.
lucenerevolution
 

Similar to How to Contribute to Apache Flink (and Flink at the Apache Software Foundation) (20)

Community update on flink 1.9 and How to Contribute to Flink
Community update on flink 1.9 and How to Contribute to FlinkCommunity update on flink 1.9 and How to Contribute to Flink
Community update on flink 1.9 and How to Contribute to Flink
 
How to contribute to Apache Flink @ Seattle Flink meetup
How to contribute to Apache Flink @ Seattle Flink meetupHow to contribute to Apache Flink @ Seattle Flink meetup
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?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...
Flink Forward SF 2017: Tzu-Li (Gordon) Tai -  Joining the Scurry of Squirrels...Flink Forward SF 2017: Tzu-Li (Gordon) Tai -  Joining the Scurry of Squirrels...
Flink Forward SF 2017: Tzu-Li (Gordon) Tai - Joining the Scurry of Squirrels...
 
7 Apache Process Cloudstack Developer Day
7 Apache Process Cloudstack Developer Day7 Apache Process Cloudstack Developer Day
7 Apache Process Cloudstack Developer Day
 
Zero to 365 in One Hour: Processes and Tools for Effective SharePoint Solutions
Zero to 365 in One Hour: Processes and Tools for Effective SharePoint SolutionsZero to 365 in One Hour: Processes and Tools for Effective SharePoint Solutions
Zero to 365 in One Hour: Processes and Tools for Effective SharePoint Solutions
 
Management de communaute
Management de communauteManagement de communaute
Management de communaute
 
Guide to open source
Guide to open source Guide to open source
Guide to open source
 
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
 
Code the docs-yu liu
Code the docs-yu liuCode the docs-yu liu
Code the docs-yu liu
 
Introduction to Open Source, Apache and Apache Way
Introduction to Open Source, Apache and Apache WayIntroduction to Open Source, Apache and Apache Way
Introduction to Open Source, Apache and Apache Way
 
Créer une communauté open source: pourquoi ? comment ?
Créer une communauté open source: pourquoi ? comment ?Créer une communauté open source: pourquoi ? comment ?
Créer une communauté open source: pourquoi ? comment ?
 
Alfresco Day Madrid - Toni de la Fuente - Roadmap 2011
Alfresco Day Madrid - Toni de la Fuente - Roadmap 2011Alfresco Day Madrid - Toni de la Fuente - Roadmap 2011
Alfresco Day Madrid - Toni de la Fuente - Roadmap 2011
 
Alfresco day madrid toni de la fuente - roadmap 2011
Alfresco day madrid   toni de la fuente - roadmap 2011Alfresco day madrid   toni de la fuente - roadmap 2011
Alfresco day madrid toni de la fuente - roadmap 2011
 
Apache Flink - Community Update January 2015
Apache Flink - Community Update January 2015Apache Flink - Community Update January 2015
Apache Flink - Community Update January 2015
 
PR workflow
PR workflowPR workflow
PR workflow
 
IT Systems for Knowledge Management used in Software Engineering (2010)
IT Systems for Knowledge Management used in Software Engineering (2010)IT Systems for Knowledge Management used in Software Engineering (2010)
IT Systems for Knowledge Management used in Software Engineering (2010)
 
VA Smalltalk Update
VA Smalltalk UpdateVA Smalltalk Update
VA Smalltalk Update
 
The Apache Way: A Proven Way Toward Success
The Apache Way: A Proven Way Toward SuccessThe Apache Way: A Proven Way Toward Success
The Apache Way: A Proven Way Toward Success
 
Cms integration of apache solr how we did it.
Cms integration of apache solr   how we did it.Cms integration of apache solr   how we did it.
Cms integration of apache solr how we did it.
 

More from Robert Metzger

dA Platform Overview
dA Platform OverviewdA Platform Overview
dA Platform Overview
Robert Metzger
 
Apache Flink @ Tel Aviv / Herzliya Meetup
Apache Flink @ Tel Aviv / Herzliya MeetupApache Flink @ Tel Aviv / Herzliya Meetup
Apache Flink @ Tel Aviv / Herzliya Meetup
Robert Metzger
 
Apache Flink Community Updates November 2016 @ Berlin Meetup
Apache Flink Community Updates November 2016 @ Berlin MeetupApache Flink Community Updates November 2016 @ Berlin Meetup
Apache Flink Community Updates November 2016 @ Berlin Meetup
Robert Metzger
 
A Data Streaming Architecture with Apache Flink (berlin Buzzwords 2016)
A Data Streaming Architecture with Apache Flink (berlin Buzzwords 2016)A Data Streaming Architecture with Apache Flink (berlin Buzzwords 2016)
A Data Streaming Architecture with Apache Flink (berlin Buzzwords 2016)
Robert Metzger
 
Community Update May 2016 (January - May) | Berlin Apache Flink Meetup
Community Update May 2016 (January - May) | Berlin Apache Flink MeetupCommunity Update May 2016 (January - May) | Berlin Apache Flink Meetup
Community Update May 2016 (January - May) | Berlin Apache Flink Meetup
Robert Metzger
 
GOTO Night Amsterdam - Stream processing with Apache Flink
GOTO Night Amsterdam - Stream processing with Apache FlinkGOTO Night Amsterdam - Stream processing with Apache Flink
GOTO Night Amsterdam - Stream processing with Apache Flink
Robert Metzger
 
QCon London - Stream Processing with Apache Flink
QCon London - Stream Processing with Apache FlinkQCon London - Stream Processing with Apache Flink
QCon London - Stream Processing with Apache Flink
Robert Metzger
 
January 2016 Flink Community Update & Roadmap 2016
January 2016 Flink Community Update & Roadmap 2016January 2016 Flink Community Update & Roadmap 2016
January 2016 Flink Community Update & Roadmap 2016
Robert Metzger
 
Flink Community Update December 2015: Year in Review
Flink Community Update December 2015: Year in ReviewFlink Community Update December 2015: Year in Review
Flink Community Update December 2015: Year in Review
Robert Metzger
 
Apache Flink Meetup Munich (November 2015): Flink Overview, Architecture, Int...
Apache Flink Meetup Munich (November 2015): Flink Overview, Architecture, Int...Apache Flink Meetup Munich (November 2015): Flink Overview, Architecture, Int...
Apache Flink Meetup Munich (November 2015): Flink Overview, Architecture, Int...
Robert Metzger
 
Chicago Flink Meetup: Flink's streaming architecture
Chicago Flink Meetup: Flink's streaming architectureChicago Flink Meetup: Flink's streaming architecture
Chicago Flink Meetup: Flink's streaming architecture
Robert Metzger
 
Flink September 2015 Community Update
Flink September 2015 Community UpdateFlink September 2015 Community Update
Flink September 2015 Community Update
Robert Metzger
 
Architecture of Flink's Streaming Runtime @ ApacheCon EU 2015
Architecture of Flink's Streaming Runtime @ ApacheCon EU 2015Architecture of Flink's Streaming Runtime @ ApacheCon EU 2015
Architecture of Flink's Streaming Runtime @ ApacheCon EU 2015
Robert Metzger
 
Click-Through Example for Flink’s KafkaConsumer Checkpointing
Click-Through Example for Flink’s KafkaConsumer CheckpointingClick-Through Example for Flink’s KafkaConsumer Checkpointing
Click-Through Example for Flink’s KafkaConsumer Checkpointing
Robert Metzger
 
August Flink Community Update
August Flink Community UpdateAugust Flink Community Update
August Flink Community Update
Robert Metzger
 
Flink Cummunity Update July (Berlin Meetup)
Flink Cummunity Update July (Berlin Meetup)Flink Cummunity Update July (Berlin Meetup)
Flink Cummunity Update July (Berlin Meetup)
Robert Metzger
 
Apache Flink First Half of 2015 Community Update
Apache Flink First Half of 2015 Community UpdateApache Flink First Half of 2015 Community Update
Apache Flink First Half of 2015 Community Update
Robert Metzger
 
Apache Flink Deep-Dive @ Hadoop Summit 2015 in San Jose, CA
Apache Flink Deep-Dive @ Hadoop Summit 2015 in San Jose, CAApache Flink Deep-Dive @ Hadoop Summit 2015 in San Jose, CA
Apache Flink Deep-Dive @ Hadoop Summit 2015 in San Jose, CA
Robert Metzger
 
Apache Flink Hands On
Apache Flink Hands OnApache Flink Hands On
Apache Flink Hands On
Robert Metzger
 
Berlin Apache Flink Meetup May 2015, Community Update
Berlin Apache Flink Meetup May 2015, Community UpdateBerlin Apache Flink Meetup May 2015, Community Update
Berlin Apache Flink Meetup May 2015, Community Update
Robert Metzger
 

More from Robert Metzger (20)

dA Platform Overview
dA Platform OverviewdA Platform Overview
dA Platform Overview
 
Apache Flink @ Tel Aviv / Herzliya Meetup
Apache Flink @ Tel Aviv / Herzliya MeetupApache Flink @ Tel Aviv / Herzliya Meetup
Apache Flink @ Tel Aviv / Herzliya Meetup
 
Apache Flink Community Updates November 2016 @ Berlin Meetup
Apache Flink Community Updates November 2016 @ Berlin MeetupApache Flink Community Updates November 2016 @ Berlin Meetup
Apache Flink Community Updates November 2016 @ Berlin Meetup
 
A Data Streaming Architecture with Apache Flink (berlin Buzzwords 2016)
A Data Streaming Architecture with Apache Flink (berlin Buzzwords 2016)A Data Streaming Architecture with Apache Flink (berlin Buzzwords 2016)
A Data Streaming Architecture with Apache Flink (berlin Buzzwords 2016)
 
Community Update May 2016 (January - May) | Berlin Apache Flink Meetup
Community Update May 2016 (January - May) | Berlin Apache Flink MeetupCommunity Update May 2016 (January - May) | Berlin Apache Flink Meetup
Community Update May 2016 (January - May) | Berlin Apache Flink Meetup
 
GOTO Night Amsterdam - Stream processing with Apache Flink
GOTO Night Amsterdam - Stream processing with Apache FlinkGOTO Night Amsterdam - Stream processing with Apache Flink
GOTO Night Amsterdam - Stream processing with Apache Flink
 
QCon London - Stream Processing with Apache Flink
QCon London - Stream Processing with Apache FlinkQCon London - Stream Processing with Apache Flink
QCon London - Stream Processing with Apache Flink
 
January 2016 Flink Community Update & Roadmap 2016
January 2016 Flink Community Update & Roadmap 2016January 2016 Flink Community Update & Roadmap 2016
January 2016 Flink Community Update & Roadmap 2016
 
Flink Community Update December 2015: Year in Review
Flink Community Update December 2015: Year in ReviewFlink Community Update December 2015: Year in Review
Flink Community Update December 2015: Year in Review
 
Apache Flink Meetup Munich (November 2015): Flink Overview, Architecture, Int...
Apache Flink Meetup Munich (November 2015): Flink Overview, Architecture, Int...Apache Flink Meetup Munich (November 2015): Flink Overview, Architecture, Int...
Apache Flink Meetup Munich (November 2015): Flink Overview, Architecture, Int...
 
Chicago Flink Meetup: Flink's streaming architecture
Chicago Flink Meetup: Flink's streaming architectureChicago Flink Meetup: Flink's streaming architecture
Chicago Flink Meetup: Flink's streaming architecture
 
Flink September 2015 Community Update
Flink September 2015 Community UpdateFlink September 2015 Community Update
Flink September 2015 Community Update
 
Architecture of Flink's Streaming Runtime @ ApacheCon EU 2015
Architecture of Flink's Streaming Runtime @ ApacheCon EU 2015Architecture of Flink's Streaming Runtime @ ApacheCon EU 2015
Architecture of Flink's Streaming Runtime @ ApacheCon EU 2015
 
Click-Through Example for Flink’s KafkaConsumer Checkpointing
Click-Through Example for Flink’s KafkaConsumer CheckpointingClick-Through Example for Flink’s KafkaConsumer Checkpointing
Click-Through Example for Flink’s KafkaConsumer Checkpointing
 
August Flink Community Update
August Flink Community UpdateAugust Flink Community Update
August Flink Community Update
 
Flink Cummunity Update July (Berlin Meetup)
Flink Cummunity Update July (Berlin Meetup)Flink Cummunity Update July (Berlin Meetup)
Flink Cummunity Update July (Berlin Meetup)
 
Apache Flink First Half of 2015 Community Update
Apache Flink First Half of 2015 Community UpdateApache Flink First Half of 2015 Community Update
Apache Flink First Half of 2015 Community Update
 
Apache Flink Deep-Dive @ Hadoop Summit 2015 in San Jose, CA
Apache Flink Deep-Dive @ Hadoop Summit 2015 in San Jose, CAApache Flink Deep-Dive @ Hadoop Summit 2015 in San Jose, CA
Apache Flink Deep-Dive @ Hadoop Summit 2015 in San Jose, CA
 
Apache Flink Hands On
Apache Flink Hands OnApache Flink Hands On
Apache Flink Hands On
 
Berlin Apache Flink Meetup May 2015, Community Update
Berlin Apache Flink Meetup May 2015, Community UpdateBerlin Apache Flink Meetup May 2015, Community Update
Berlin Apache Flink Meetup May 2015, Community Update
 

Recently uploaded

Essentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation ParametersEssentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation Parameters
Safe Software
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
Miro Wengner
 
The Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptxThe Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptx
operationspcvita
 
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving
 
From Natural Language to Structured Solr Queries using LLMs
From Natural Language to Structured Solr Queries using LLMsFrom Natural Language to Structured Solr Queries using LLMs
From Natural Language to Structured Solr Queries using LLMs
Sease
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
Antonios Katsarakis
 
Session 1 - Intro to Robotic Process Automation.pdf
Session 1 - Intro to Robotic Process Automation.pdfSession 1 - Intro to Robotic Process Automation.pdf
Session 1 - Intro to Robotic Process Automation.pdf
UiPathCommunity
 
AI in the Workplace Reskilling, Upskilling, and Future Work.pptx
AI in the Workplace Reskilling, Upskilling, and Future Work.pptxAI in the Workplace Reskilling, Upskilling, and Future Work.pptx
AI in the Workplace Reskilling, Upskilling, and Future Work.pptx
Sunil Jagani
 
Must Know Postgres Extension for DBA and Developer during Migration
Must Know Postgres Extension for DBA and Developer during MigrationMust Know Postgres Extension for DBA and Developer during Migration
Must Know Postgres Extension for DBA and Developer during Migration
Mydbops
 
AWS Certified Solutions Architect Associate (SAA-C03)
AWS Certified Solutions Architect Associate (SAA-C03)AWS Certified Solutions Architect Associate (SAA-C03)
AWS Certified Solutions Architect Associate (SAA-C03)
HarpalGohil4
 
Demystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through StorytellingDemystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through Storytelling
Enterprise Knowledge
 
"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota
Fwdays
 
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance PanelsNorthern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving
 
Y-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PPY-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PP
c5vrf27qcz
 
ScyllaDB Tablets: Rethinking Replication
ScyllaDB Tablets: Rethinking ReplicationScyllaDB Tablets: Rethinking Replication
ScyllaDB Tablets: Rethinking Replication
ScyllaDB
 
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
Fwdays
 
Christine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptxChristine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptx
christinelarrosa
 
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
DanBrown980551
 
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
"Scaling RAG Applications to serve millions of users",  Kevin Goedecke"Scaling RAG Applications to serve millions of users",  Kevin Goedecke
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
Fwdays
 
What is an RPA CoE? Session 1 – CoE Vision
What is an RPA CoE?  Session 1 – CoE VisionWhat is an RPA CoE?  Session 1 – CoE Vision
What is an RPA CoE? Session 1 – CoE Vision
DianaGray10
 

Recently uploaded (20)

Essentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation ParametersEssentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation Parameters
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
 
The Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptxThe Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptx
 
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024
 
From Natural Language to Structured Solr Queries using LLMs
From Natural Language to Structured Solr Queries using LLMsFrom Natural Language to Structured Solr Queries using LLMs
From Natural Language to Structured Solr Queries using LLMs
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
 
Session 1 - Intro to Robotic Process Automation.pdf
Session 1 - Intro to Robotic Process Automation.pdfSession 1 - Intro to Robotic Process Automation.pdf
Session 1 - Intro to Robotic Process Automation.pdf
 
AI in the Workplace Reskilling, Upskilling, and Future Work.pptx
AI in the Workplace Reskilling, Upskilling, and Future Work.pptxAI in the Workplace Reskilling, Upskilling, and Future Work.pptx
AI in the Workplace Reskilling, Upskilling, and Future Work.pptx
 
Must Know Postgres Extension for DBA and Developer during Migration
Must Know Postgres Extension for DBA and Developer during MigrationMust Know Postgres Extension for DBA and Developer during Migration
Must Know Postgres Extension for DBA and Developer during Migration
 
AWS Certified Solutions Architect Associate (SAA-C03)
AWS Certified Solutions Architect Associate (SAA-C03)AWS Certified Solutions Architect Associate (SAA-C03)
AWS Certified Solutions Architect Associate (SAA-C03)
 
Demystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through StorytellingDemystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through Storytelling
 
"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota
 
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance PanelsNorthern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
 
Y-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PPY-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PP
 
ScyllaDB Tablets: Rethinking Replication
ScyllaDB Tablets: Rethinking ReplicationScyllaDB Tablets: Rethinking Replication
ScyllaDB Tablets: Rethinking Replication
 
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
 
Christine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptxChristine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptx
 
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
 
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
"Scaling RAG Applications to serve millions of users",  Kevin Goedecke"Scaling RAG Applications to serve millions of users",  Kevin Goedecke
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
 
What is an RPA CoE? Session 1 – CoE Vision
What is an RPA CoE?  Session 1 – CoE VisionWhat is an RPA CoE?  Session 1 – CoE Vision
What is an RPA CoE? Session 1 – CoE Vision
 

How to Contribute to Apache Flink (and Flink at the Apache Software Foundation)

  • 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”
  • 5.
  • 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 Comitee 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
  • 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 consensus: Assume consensus after 72 hours, if nobody objects • Used for smaller changes, procedural changes, ...
  • 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.
  • 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_