+1 (non-binding) Regards, Hao
On Fri, Jan 29, 2016 at 11:32 AM, Johan Edstrom <seij...@gmail.com> wrote: > +1 > > > On Jan 28, 2016, at 6:34 PM, Naresh Agarwal <naresh.agar...@gmail.com> > wrote: > > > > +1 (non-binding) > > > > Thanks > > Naresh > > On 29 Jan 2016 06:18, "Hadrian Zbarcea" <hzbar...@gmail.com> wrote: > > > >> +1 (binding) > >> > >> Man, congrats on a job fantastically well done. This is ASF incubator > >> participation at its best. > >> > >> Expectations are high now. I am looking forward to exemplary governance > >> and speedy graduation. > >> > >> Best of luck, > >> Hadrian > >> > >> On 01/28/2016 09:28 AM, Jean-Baptiste Onofré wrote: > >> > >>> Hi, > >>> > >>> the Beam proposal (initially Dataflow) was proposed last week. > >>> > >>> The complete discussion thread is available here: > >>> > >>> > >>> > http://mail-archives.apache.org/mod_mbox/incubator-general/201601.mbox/%3CCA%2B%3DKJmvj4wyosNTXVpnsH8PhS7jEyzkZngc682rGgZ3p28L42Q%40mail.gmail.com%3E > >>> > >>> > >>> As reminder the BeamProposal is here: > >>> > >>> https://wiki.apache.org/incubator/BeamProposal > >>> > >>> Regarding all the great feedbacks we received on the mailing list, we > >>> think it's time to call a vote to accept Beam into the Incubator. > >>> > >>> Please cast your vote to: > >>> [] +1 - accept Apache Beam as a new incubating project > >>> [] 0 - not sure > >>> [] -1 - do not accept the Apache Beam project (because: ...) > >>> > >>> Thanks, > >>> Regards > >>> JB > >>> ---- > >>> ## page was renamed from DataflowProposal > >>> = Apache Beam = > >>> > >>> == Abstract == > >>> > >>> Apache Beam is an open source, unified model and set of > >>> language-specific SDKs for defining and executing data processing > >>> workflows, and also data ingestion and integration flows, supporting > >>> Enterprise Integration Patterns (EIPs) and Domain Specific Languages > >>> (DSLs). Dataflow pipelines simplify the mechanics of large-scale batch > >>> and streaming data processing and can run on a number of runtimes like > >>> Apache Flink, Apache Spark, and Google Cloud Dataflow (a cloud > service). > >>> Beam also brings DSL in different languages, allowing users to easily > >>> implement their data integration processes. > >>> > >>> == Proposal == > >>> > >>> Beam is a simple, flexible, and powerful system for distributed data > >>> processing at any scale. Beam provides a unified programming model, a > >>> software development kit to define and construct data processing > >>> pipelines, and runners to execute Beam pipelines in several runtime > >>> engines, like Apache Spark, Apache Flink, or Google Cloud Dataflow. > Beam > >>> can be used for a variety of streaming or batch data processing goals > >>> including ETL, stream analysis, and aggregate computation. The > >>> underlying programming model for Beam provides MapReduce-like > >>> parallelism, combined with support for powerful data windowing, and > >>> fine-grained correctness control. > >>> > >>> == Background == > >>> > >>> Beam started as a set of Google projects (Google Cloud Dataflow) > focused > >>> on making data processing easier, faster, and less costly. The Beam > >>> model is a successor to MapReduce, FlumeJava, and Millwheel inside > >>> Google and is focused on providing a unified solution for batch and > >>> stream processing. These projects on which Beam is based have been > >>> published in several papers made available to the public: > >>> > >>> * MapReduce - http://research.google.com/archive/mapreduce.html > >>> * Dataflow model - http://www.vldb.org/pvldb/vol8/p1792-Akidau.pdf > >>> * FlumeJava - http://research.google.com/pubs/pub35650.html > >>> * MillWheel - http://research.google.com/pubs/pub41378.html > >>> > >>> Beam was designed from the start to provide a portable programming > >>> layer. When you define a data processing pipeline with the Beam model, > >>> you are creating a job which is capable of being processed by any > number > >>> of Beam processing engines. Several engines have been developed to run > >>> Beam pipelines in other open source runtimes, including a Beam runner > >>> for Apache Flink and Apache Spark. There is also a “direct runner”, for > >>> execution on the developer machine (mainly for dev/debug purposes). > >>> Another runner allows a Beam program to run on a managed service, > Google > >>> Cloud Dataflow, in Google Cloud Platform. The Dataflow Java SDK is > >>> already available on GitHub, and independent from the Google Cloud > >>> Dataflow service. Another Python SDK is currently in active > development. > >>> > >>> In this proposal, the Beam SDKs, model, and a set of runners will be > >>> submitted as an OSS project under the ASF. The runners which are a part > >>> of this proposal include those for Spark (from Cloudera), Flink (from > >>> data Artisans), and local development (from Google); the Google Cloud > >>> Dataflow service runner is not included in this proposal. Further > >>> references to Beam will refer to the Dataflow model, SDKs, and runners > >>> which are a part of this proposal (Apache Beam) only. The initial > >>> submission will contain the already-released Java SDK; Google intends > to > >>> submit the Python SDK later in the incubation process. The Google Cloud > >>> Dataflow service will continue to be one of many runners for Beam, > built > >>> on Google Cloud Platform, to run Beam pipelines. Necessarily, Cloud > >>> Dataflow will develop against the Apache project additions, updates, > and > >>> changes. Google Cloud Dataflow will become one user of Apache Beam and > >>> will participate in the project openly and publicly. > >>> > >>> The Beam programming model has been designed with simplicity, > >>> scalability, and speed as key tenants. In the Beam model, you only need > >>> to think about four top-level concepts when constructing your data > >>> processing job: > >>> > >>> * Pipelines - The data processing job made of a series of computations > >>> including input, processing, and output > >>> * PCollections - Bounded (or unbounded) datasets which represent the > >>> input, intermediate and output data in pipelines > >>> * PTransforms - A data processing step in a pipeline in which one or > >>> more PCollections are an input and output > >>> * I/O Sources and Sinks - APIs for reading and writing data which are > >>> the roots and endpoints of the pipeline > >>> > >>> == Rationale == > >>> > >>> With Google Dataflow, Google intended to develop a framework which > >>> allowed developers to be maximally productive in defining the > >>> processing, and then be able to execute the program at various levels > of > >>> latency/cost/completeness without re-architecting or re-writing it. > This > >>> goal was informed by Google’s past experience developing several > >>> models, frameworks, and tools useful for large-scale and distributed > >>> data processing. While Google has previously published papers > describing > >>> some of its technologies, Google decided to take a different approach > >>> with Dataflow. Google open-sourced the SDK and model alongside > >>> commercialization of the idea and ahead of publishing papers on the > >>> topic. As a result, a number of open source runtimes exist for > Dataflow, > >>> such as the Apache Flink and Apache Spark runners. > >>> > >>> We believe that submitting Beam as an Apache project will provide an > >>> immediate, worthwhile, and substantial contribution to the open source > >>> community. As an incubating project, we believe Dataflow will have a > >>> better opportunity to provide a meaningful contribution to OSS and also > >>> integrate with other Apache projects. > >>> > >>> In the long term, we believe Beam can be a powerful abstraction layer > >>> for data processing. By providing an abstraction layer for data > >>> pipelines and processing, data workflows can be increasingly portable, > >>> resilient to breaking changes in tooling, and compatible across many > >>> execution engines, runtimes, and open source projects. > >>> > >>> == Initial Goals == > >>> > >>> We are breaking our initial goals into immediate (< 2 months), > >>> short-term (2-4 months), and intermediate-term (> 4 months). > >>> > >>> Our immediate goals include the following: > >>> > >>> * Plan for reconciling the Dataflow Java SDK and various runners into > >>> one project > >>> * Plan for refactoring the existing Java SDK for better extensibility > >>> by SDK and runner writers > >>> * Validating all dependencies are ASL 2.0 or compatible > >>> * Understanding and adapting to the Apache development process > >>> > >>> Our short-term goals include: > >>> > >>> * Moving the newly-merged lists, and build utilities to Apache > >>> * Start refactoring codebase and move code to Apache Git repo > >>> * Continue development of new features, functions, and fixes in the > >>> Dataflow Java SDK, and Dataflow runners > >>> * Cleaning up the Dataflow SDK sources and crafting a roadmap and plan > >>> for how to include new major ideas, modules, and runtimes > >>> * Establishment of easy and clear build/test framework for Dataflow > >>> and associated runtimes; creation of testing, rollback, and validation > >>> policy > >>> * Analysis and design for work needed to make Beam a better data > >>> processing abstraction layer for multiple open source frameworks and > >>> environments > >>> > >>> Finally, we have a number of intermediate-term goals: > >>> > >>> * Roadmapping, planning, and execution of integrations with other OSS > >>> and non-OSS projects/products > >>> * Inclusion of additional SDK for Python, which is under active > >>> development > >>> > >>> == Current Status == > >>> > >>> === Meritocracy === > >>> > >>> Dataflow was initially developed based on ideas from many employees > >>> within Google. As an ASL OSS project on GitHub, the Dataflow SDK has > >>> received contributions from data Artisans, Cloudera Labs, and other > >>> individual developers. As a project under incubation, we are committed > >>> to expanding our effort to build an environment which supports a > >>> meritocracy. We are focused on engaging the community and other related > >>> projects for support and contributions. Moreover, we are committed to > >>> ensure contributors and committers to Dataflow come from a broad mix of > >>> organizations through a merit-based decision process during incubation. > >>> We believe strongly in the Beam model and are committed to growing an > >>> inclusive community of Beam contributors. > >>> > >>> === Community === > >>> > >>> The core of the Dataflow Java SDK has been developed by Google for use > >>> with Google Cloud Dataflow. Google has active community engagement in > >>> the SDK GitHub repository > >>> (https://github.com/GoogleCloudPlatform/DataflowJavaSDK), on Stack > >>> Overflow > >>> (http://stackoverflow.com/questions/tagged/google-cloud-dataflow) and > >>> has had contributions from a number of organizations and indivuduals. > >>> > >>> Everyday, Cloud Dataflow is actively used by a number of organizations > >>> and institutions for batch and stream processing of data. We believe > >>> acceptance will allow us to consolidate existing Dataflow-related work, > >>> grow the Dataflow community, and deepen connections between Dataflow > and > >>> other open source projects. > >>> > >>> === Core Developers === > >>> > >>> The core developers for Dataflow and the Dataflow runners are: > >>> > >>> * Frances Perry > >>> * Tyler Akidau > >>> * Davor Bonaci > >>> * Luke Cwik > >>> * Ben Chambers > >>> * Kenn Knowles > >>> * Dan Halperin > >>> * Daniel Mills > >>> * Mark Shields > >>> * Craig Chambers > >>> * Maximilian Michels > >>> * Tom White > >>> * Josh Wills > >>> * Robert Bradshaw > >>> > >>> === Alignment === > >>> > >>> The Beam SDK can be used to create Beam pipelines which can be executed > >>> on Apache Spark or Apache Flink. Beam is also related to other Apache > >>> projects, such as Apache Crunch. We plan on expanding functionality for > >>> Beam runners, support for additional domain specific languages, and > >>> increased portability so Beam is a powerful abstraction layer for data > >>> processing. > >>> > >>> == Known Risks == > >>> > >>> === Orphaned Products === > >>> > >>> The Dataflow SDK is presently used by several organizations, from small > >>> startups to Fortune 100 companies, to construct production pipelines > >>> which are executed in Google Cloud Dataflow. Google has a long-term > >>> commitment to advance the Dataflow SDK; moreover, Dataflow is seeing > >>> increasing interest, development, and adoption from organizations > >>> outside of Google. > >>> > >>> === Inexperience with Open Source === > >>> > >>> Google believes strongly in open source and the exchange of information > >>> to advance new ideas and work. Examples of this commitment are active > >>> OSS projects such as Chromium (https://www.chromium.org) and > Kubernetes > >>> (http://kubernetes.io/). With Dataflow, we have tried to be > increasingly > >>> open and forward-looking; we have published a paper in the VLDB > >>> conference describing the Dataflow model > >>> (http://www.vldb.org/pvldb/vol8/p1792-Akidau.pdf) and were quick to > >>> release the Dataflow SDK as open source software with the launch of > >>> Cloud Dataflow. Our submission to the Apache Software Foundation is a > >>> logical extension of our commitment to open source software. > >>> > >>> === Homogeneous Developers === > >>> > >>> The majority of committers in this proposal belong to Google due to the > >>> fact that Dataflow has emerged from several internal Google projects. > >>> This proposal also includes committers outside of Google who are > >>> actively involved with other Apache projects, such as Hadoop, Flink, > and > >>> Spark. We expect our entry into incubation will allow us to expand the > >>> number of individuals and organizations participating in Dataflow > >>> development. Additionally, separation of the Dataflow SDK from Google > >>> Cloud Dataflow allows us to focus on the open source SDK and model and > >>> do what is best for this project. > >>> > >>> === Reliance on Salaried Developers === > >>> > >>> The Dataflow SDK and Dataflow runners have been developed primarily by > >>> salaried developers supporting the Google Cloud Dataflow project. While > >>> the Dataflow SDK and Cloud Dataflow have been developed by different > >>> teams (and this proposal would reinforce that separation) we expect our > >>> initial set of developers will still primarily be salaried. > Contribution > >>> has not been exclusively from salaried developers, however. For > example, > >>> the contrib directory of the Dataflow SDK > >>> ( > >>> > https://github.com/GoogleCloudPlatform/DataflowJavaSDK/tree/master/contrib > >>> ) > >>> contains items from free-time contributors. Moreover, seperate > projects, > >>> such as ScalaFlow (https://github.com/darkjh/scalaflow) have been > >>> created around the Dataflow model and SDK. We expect our reliance on > >>> salaried developers will decrease over time during incubation. > >>> > >>> === Relationship with other Apache products === > >>> > >>> Dataflow directly interoperates with or utilizes several existing > Apache > >>> projects. > >>> > >>> * Build > >>> * Apache Maven > >>> * Data I/O, Libraries > >>> * Apache Avro > >>> * Apache Commons > >>> * Dataflow runners > >>> * Apache Flink > >>> * Apache Spark > >>> > >>> Beam when used in batch mode shares similarities with Apache Crunch; > >>> however, Beam is focused on a model, SDK, and abstraction layer beyond > >>> Spark and Hadoop (MapReduce.) One key goal of Beam is to provide an > >>> intermediate abstraction layer which can easily be implemented and > >>> utilized across several different processing frameworks. > >>> > >>> === An excessive fascination with the Apache brand === > >>> > >>> With this proposal we are not seeking attention or publicity. Rather, > we > >>> firmly believe in the Beam model, SDK, and the ability to make Beam a > >>> powerful yet simple framework for data processing. While the Dataflow > >>> SDK and model have been open source, we believe putting code on GitHub > >>> can only go so far. We see the Apache community, processes, and mission > >>> as critical for ensuring the Beam SDK and model are truly > >>> community-driven, positively impactful, and innovative open source > >>> software. While Google has taken a number of steps to advance its > >>> various open source projects, we believe Beam is a great fit for the > >>> Apache Software Foundation due to its focus on data processing and its > >>> relationships to existing ASF projects. > >>> > >>> == Documentation == > >>> > >>> The following documentation is relevant to this proposal. Relevant > >>> portion of the documentation will be contributed to the Apache Beam > >>> project. > >>> > >>> * Dataflow website: https://cloud.google.com/dataflow > >>> * Dataflow programming model: > >>> https://cloud.google.com/dataflow/model/programming-model > >>> * Codebases > >>> * Dataflow Java SDK: > >>> https://github.com/GoogleCloudPlatform/DataflowJavaSDK > >>> * Flink Dataflow runner: > >>> https://github.com/dataArtisans/flink-dataflow > >>> * Spark Dataflow runner: https://github.com/cloudera/spark-dataflow > >>> * Dataflow Java SDK issue tracker: > >>> https://github.com/GoogleCloudPlatform/DataflowJavaSDK/issues > >>> * google-cloud-dataflow tag on Stack Overflow: > >>> http://stackoverflow.com/questions/tagged/google-cloud-dataflow > >>> > >>> == Initial Source == > >>> > >>> The initial source for Beam which we will submit to the Apache > >>> Foundation will include several related projects which are currently > >>> hosted on the GitHub repositories: > >>> > >>> * Dataflow Java SDK > >>> (https://github.com/GoogleCloudPlatform/DataflowJavaSDK) > >>> * Flink Dataflow runner ( > https://github.com/dataArtisans/flink-dataflow > >>> ) > >>> * Spark Dataflow runner (https://github.com/cloudera/spark-dataflow) > >>> > >>> These projects have always been Apache 2.0 licensed. We intend to > bundle > >>> all of these repositories since they are all complimentary and should > be > >>> maintained in one project. Prior to our submission, we will combine all > >>> of these projects into a new git repository. > >>> > >>> == Source and Intellectual Property Submission Plan == > >>> > >>> The source for the Dataflow SDK and the three runners (Spark, Flink, > >>> Google Cloud Dataflow) are already licensed under an Apache 2 license. > >>> > >>> * Dataflow SDK - > >>> > https://github.com/GoogleCloudPlatform/DataflowJavaSDK/blob/master/LICENSE > >>> * Flink runner - > >>> https://github.com/dataArtisans/flink-dataflow/blob/master/LICENSE > >>> * Spark runner - > >>> https://github.com/cloudera/spark-dataflow/blob/master/LICENSE > >>> > >>> Contributors to the Dataflow SDK have also signed the Google Individual > >>> Contributor License Agreement > >>> (https://cla.developers.google.com/about/google-individual) in order > to > >>> contribute to the project. > >>> > >>> With respect to trademark rights, Google does not hold a trademark on > >>> the phrase “Dataflow.” Based on feedback and guidance we receive during > >>> the incubation process, we are open to renaming the project if > necessary > >>> for trademark or other concerns. > >>> > >>> == External Dependencies == > >>> > >>> All external dependencies are licensed under an Apache 2.0 or > >>> Apache-compatible license. As we grow the Beam community we will > >>> configure our build process to require and validate all contributions > >>> and dependencies are licensed under the Apache 2.0 license or are under > >>> an Apache-compatible license. > >>> > >>> == Required Resources == > >>> > >>> === Mailing Lists === > >>> > >>> We currently use a mix of mailing lists. We will migrate our existing > >>> mailing lists to the following: > >>> > >>> * d...@beam.incubator.apache.org > >>> * u...@beam.incubator.apache.org > >>> * priv...@beam.incubator.apache.org > >>> * comm...@beam.incubator.apache.org > >>> > >>> === Source Control === > >>> > >>> The Dataflow team currently uses Git and would like to continue to do > >>> so. We request a Git repository for Beam with mirroring to GitHub > enabled. > >>> > >>> * https://git-wip-us.apache.org/repos/asf/incubator-beam.git > >>> > >>> === Issue Tracking === > >>> > >>> We request the creation of an Apache-hosted JIRA. The Dataflow project > >>> is currently using both a public GitHub issue tracker and internal > >>> Google issue tracking. We will migrate and combine from these two > >>> sources to the Apache JIRA. > >>> > >>> * Jira ID: BEAM > >>> > >>> == Initial Committers == > >>> > >>> * Aljoscha Krettek [aljos...@apache.org] > >>> * Amit Sela [amitsel...@gmail.com] > >>> * Ben Chambers [bchamb...@google.com] > >>> * Craig Chambers [chamb...@google.com] > >>> * Dan Halperin [dhalp...@google.com] > >>> * Davor Bonaci [da...@google.com] > >>> * Frances Perry [f...@google.com] > >>> * James Malone [jamesmal...@google.com] > >>> * Jean-Baptiste Onofré [jbono...@apache.org] > >>> * Josh Wills [jwi...@apache.org] > >>> * Kostas Tzoumas [kos...@data-artisans.com] > >>> * Kenneth Knowles [k...@google.com] > >>> * Luke Cwik [lc...@google.com] > >>> * Maximilian Michels [m...@apache.org] > >>> * Stephan Ewen [step...@data-artisans.com] > >>> * Tom White [t...@cloudera.com] > >>> * Tyler Akidau [taki...@google.com] > >>> * Robert Bradshaw [rober...@google.com] > >>> > >>> == Additional Interested Contributors == > >>> > >>> * Debo Dutta [dedu...@cisco.com] > >>> * Henry Saputra [hsapu...@apache.org] > >>> * Taylor Goetz [ptgo...@gmail.com] > >>> * James Carman [ja...@carmanconsulting.com] > >>> * Joe Witt [joew...@apache.org] > >>> * Vaibhav Gumashta [vgumas...@hortonworks.com] > >>> * Prasanth Jayachandran [pjayachand...@hortonworks.com] > >>> * Johan Edstrom [seij...@gmail.com] > >>> * Hugo Louro [hmclo...@gmail.com] > >>> * Krzysztof Sobkowiak [krzys.sobkow...@gmail.com] > >>> * Jeff Genender [jgenen...@apache.org] > >>> * Edward J. Yoon [edward.y...@samsung.com] > >>> * Hao Chen [h...@apache.org] > >>> * Byung-Gon Chun [bgc...@gmail.com] > >>> * Charitha Elvitigala [charit...@apache.org] > >>> * Alexander Bezzubov [b...@apache.org] > >>> * Tsuyoshi Ozawa [oz...@apache.org] > >>> * Mayank Bansal [maban...@gmail.com] > >>> * Supun Kamburugamuve [su...@apache.org] > >>> * Matthias Wessendorf [mat...@apache.org] > >>> * Felix Cheung [felixche...@apache.org] > >>> * Ajay Yadava [ajay.ya...@inmobi.com] > >>> * Liang Chen [chenliang...@huawei.com] > >>> * Renaud Richardet [renaud (at) apache (dot) org] > >>> * Bakey Pan [bakey1...@gmail.com] > >>> * Andreas Neumann [a...@apache.org] > >>> * Suresh Marru [sma...@apache.org] > >>> * Hadrian Zbarcea [hzbar...@gmail.com] > >>> > >>> == Affiliations == > >>> > >>> The initial committers are from six organizations. Google developed > >>> Dataflow and the Dataflow SDK, data Artisans developed the Flink > runner, > >>> and Cloudera (Labs) developed the Spark runner. > >>> > >>> * Cloudera > >>> * Tom White > >>> * Data Artisans > >>> * Aljoscha Krettek > >>> * Kostas Tzoumas > >>> * Maximilian Michels > >>> * Stephan Ewen > >>> * Google > >>> * Ben Chambers > >>> * Dan Halperin > >>> * Davor Bonaci > >>> * Frances Perry > >>> * James Malone > >>> * Kenneth Knowles > >>> * Luke Cwik > >>> * Tyler Akidau > >>> * Robert Bradshaw > >>> * PayPal > >>> * Amit Sela > >>> * Slack > >>> * Josh Wills > >>> * Talend > >>> * Jean-Baptiste Onofré > >>> > >>> == Sponsors == > >>> > >>> === Champion === > >>> > >>> * Jean-Baptiste Onofre [jbono...@apache.org] > >>> > >>> === Nominated Mentors === > >>> > >>> * Jean-Baptiste Onofre [jbono...@apache.org] > >>> * Jim Jagielski [j...@apache.org] > >>> * Venkatesh Seetharam [venkat...@apache.org] > >>> * Bertrand Delacretaz [bdelacre...@apache.org] > >>> * Ted Dunning [tdunn...@apache.org] > >>> > >>> === Sponsoring Entity === > >>> > >>> The Apache Incubator > >>> ---- > >>> > >>> --------------------------------------------------------------------- > >>> To unsubscribe, e-mail: general-unsubscr...@incubator.apache.org > >>> For additional commands, e-mail: general-h...@incubator.apache.org > >>> > >>> > >> --------------------------------------------------------------------- > >> To unsubscribe, e-mail: general-unsubscr...@incubator.apache.org > >> For additional commands, e-mail: general-h...@incubator.apache.org > >> > >> > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: general-unsubscr...@incubator.apache.org > For additional commands, e-mail: general-h...@incubator.apache.org > >