Thank you very much Kenn, that's awesome! I'll add you as a mentor once we got access to the wiki, afterwards I'll also start a separate DISCUSS thread to discuss our proposal.
Dominik -----Original Message----- From: Kenneth Knowles <k...@apache.org> Sent: Thursday, October 31, 2019 1:49 AM To: general <general@incubator.apache.org> Subject: Re: Write Access to Incubator Wiki Cool! I see you have mentors lined up. I would love to also be involved as mentor. The list of initial committers seems a little small. Browsing the commit history it does seem to be dominated by just a couple of contributors. I see this is acknowledged (at least implicitly) in the proposal. I expect a principal challenge will be attracting diverse contributors, committers, and PMC to ensure this project survives independent of any particular entity (individual or corporate). Kenn On Wed, Oct 30, 2019 at 1:16 PM Dominik Riemer <rie...@fzi.de> wrote: > Hi all, > > > > a short introduction to myself: My name is Dominik Riemer and I'm a > co-initiator of StreamPipes, an open source self-service toolbox for > analyzing IoT data streams. After presenting the tool at this year's > ApacheCon NA, followed by very friendly and fruitful discussions with > many people from the Apache community, we are sure that we'd like > continue the development of StreamPipes as an Apache community > project. Before we start a discussion process, I'd like to ask to get > write access to the Incubator wiki (username: riemer). An initial draft of > the proposal is attached below. > > > > Thanks for your help! > > Dominik > > > > > > -------------------------------- > > > > StreamPipes - Apache Incubator Proposal, Proposal Draft > > > > == Abstract == > > StreamPipes is a self-service (Industrial) IoT toolbox to enable > non-technical users to connect, analyze and explore (Industrial) IoT > data streams. > > > > = Proposal = > > > > The goal of StreamPipes > (www.streampipes.org<http://www.streampipes.org>) > is to provide an easy-to-use toolbox for non-technical users, e.g., > domain experts, to exploit data streams coming from (Industrial) IoT > devices. Such users are provided with an intuitive graphical user > interface with the Pipeline Editor at its core. Users are able to > graphically model processing pipelines based on data sources (streams), data > processors and data sinks. > Data processors and sinks are self-contained microservices, which > implement either stateful or stateless processing logic (e.g., a trend > detection or image classifier). Their processing logic is implemented > using one of several provided wrappers (we currently have wrappers for > standalone/Edge-based processing, Apache Flink, Siddhi and working > wrapper prototypes for Apache Kafka Streams and Spark, in the future > we also plan to integrate with Apache Beam). An SDK allows to easily > create new pipeline elements. Pipeline elements can be installed at > runtime. To support users in creating pipelines, an underlying > semantics-based data model enables pipeline elements to express > requirements on incoming data streams that need to be fulfilled, thus > reducing modeling errors. > > Data streams are integrated by using StreamPipes Connect, which allows > to connect data sources (based on standard protocols, such as MQTT, > Kafka, Pulsar, OPC-UA and further PLC4X-supported protocols) without > further programming using a graphical wizard. Additional user-faced > modules of StreamPipes are a Live dashboard to quickly explore IoT > data streams and a wizard that generates code templates for new > pipeline elements, a Pipeline Element Installer used to extend the algorithm > feature set at runtime. > > > > === Background === > > StreamPipes was started in 2014 by researchers from FZI Research > Center for Information Technology in Karlsruhe, Germany. The original > prototype was funded by an EU project centered around predictive > analytics for the manufacturing domain. Since then, StreamPipes was > constantly improved and extended by public funding mainly from federal > German ministries. In early 2018, the source code was officially released > under the Apache License 2.0. > At the same time, while we focused on bringing the research prototype > to a production-grade tool, the first companies started to use StreamPipes. > Currently, the primary goal is to widen the user and developer base. > At ApacheCon NA 2019, after having talked to many people from the > Apache Community, we finally decided that we would like to bring > StreamPipes to the Apache Incubator. > > > > === Rationale === > > The (Industrial) IoT domain is a highly relevant and emerging sector. > Currently, IoT platforms are offered by many vendors ranging from SMEs > up to large enterprises. We believe that open source alternatives are > an important cornerstone for manufacturing companies to easily adopt > data-driven decision making. From our point of view, StreamPipes fits > very well into the existing (I)IoT ecosystem within the ASF, with > projects such as Apache PLC4X focusing on connecting machine data from > PLCs, or other tools we are also using either in the core of > StreamPipes or with integrations (Apache Kafka, Apache IoTDB, Apache > Pulsar). StreamPipes itself focuses on enabling self-service IoT data > analytics for non-technical users. > > The whole StreamPipes code is currently on Github. To get a rough > estimate of the project size: > > * streampipes: Backend and core modules, ~3300 commits > > * streampipes-ui: User Interface, ~1300 commits > > * streampipes-pipeline-elements: ~100 Pipeline Elements (data > processors/algorithms and sinks), ~500 Commits > > * streampipes-connect-adapters: ~20 Adapters to connect data, ~100 > commits To achieve our goal to further extend the code base with new > features, new connectors and new algorithms and to grow both the user > and developer community, we believe that a community-driven > development process is the best way to further develop StreamPipes. > Finally, after having talked to committers from various Apache > IoT-related projects and participation in spontaneous hacking sessions > and being impressed by the collaboration among individual projects, we > decided that (from our point of view) the ASF is the ideal place to be the > future home of StreamPipes. > > > > === Initial Goals === > > * Move the existing codebase to Apache > > * Fully align with Apache development- and release processes > > * Perform name search and do a thorough review of existing licenses > > * First Apache release > > > > === Current Status === > > ** Meritocracy ** > > We are absolutely committed to strengthen StreamPipes as a real > community-driven open source project. The existing committer base is > highly motivated to foster the open source way in the industrial IoT > sector and, together with existing Apache communities focused on this > domain, provide open source tooling for Industrial IoT projects in the > same way Apache offers in the Big Data space, for instance. > > The development philosophy behind StreamPipes has always followed the > principles of meritocracy - although most committers are still active > in the project, we managed to onboard new, committed developers > regularly. 2 people, who are today core of the developer team, have > joined during the past year. Therefore, we would aim to continuously > expand the PMC and committer base based on merit. > > > > ** Community ** > > Since being open-sourced in 2018, the public interest in StreamPipes > has steadily grown. Several companies, mainly from the manufacturing > domain, have tested StreamPipes in form of proof-of-concept projects. > First companies have started to use StreamPipes in production. This > was due to a high number of events from meetups, research conferences, > demo sessions up to hackathons we participated or organized during the > past two years. After having generated a general interest in > StreamPipes, our next focus will be to find more committers to diversify the > contributor base. > > > > ** Core Developers ** > > The core developers of the system are Dominik Riemer, Philipp Zehnder, > Patrick Wiener and Johannes Tex. All core developers are initial > committers in the current proposal. Some former students who recently > started to work at companies and who have also worked on the project > with great commitment, will be asked to further contribute to the project. > > > > ** Alignment ** > > StreamPipes has dependencies to a lot of existing Apache projects - > this is one reason why we think that the ASF is the best future home > for StreamPipes. The messaging layer is based on Apache Kafka (and > also Apache Pulsar as a future option), and runtime wrappers exist for > Apache Flink, Apache Spark and Apache Kafka Streams. StreamPipes > Connect already includes adapters for several Apache projects. Most > importantly, we integrate (and plan to deepen the integration) with > IIoT-focused projects such as Apache PLC4X. Also, several data sinks > exist to send messages to tools from other Apache projects (e.g., Apache > Kafka, Apache Pulsar, and Apache IoTDB). > Together with these tools (and also after having talked to the core > developers after this year's ApacheCon) we are absolutely convinced > that a tight integration between these tools will strengthen the open > source IoT ecosystem. > > > > === Known Risks === > > ** Orphaned Products ** > > We don't expect the risk of an orphaned product. The initial > committers have worked on the project for years and are absolutely > committed to making this open source tool a great success. All initial > committers are committed to work on StreamPipes in their free time. > > > > ** Inexperience with Open Source ** > > All initial committers have years of expertise related to open source > development and understand what open source means. However, none of > the initial committers are currently committers to Apache projects, > although some have already contributed to some projects. From a > variety of events and from intensively studying Apache mailing lists, > we are sure that the Apache Way is the way we'd like the project to > move into the future. We expect to benefit from the experiences from > the ASF in building successful open source projects. > > > > ** Length of Incubation ** > > We are aware that incubation is a process that is focused on building > the community, learning the Apache Way and other important things such > as learning the release process and handling licensing and trademark issues. > We are also aware that, although there is a steadily increasing > interest in StreamPipes, a major challenge we would need (and are > willing) to work on during the incubation phase is widening the > committer base. We look forward to that as a large developer base is exactly > what we are striving for. > > > > ** Homogeneous Developers ** > > Most current developers work for the same institution (FZI). The > motivation of all developers goes beyond their commitment to work and > all current committers work on StreamPipes in their free time. > Recently, we have received first pull requests from external > contributors and a growing interest from users and companies outside > of FZI. First manufacturing companies have already evaluated and > adopted StreamPipes. To attract external developers, we've created an > extensive documentation, have a Slack channel to quickly answer > questions, and provide help via mail. Therefore, we believe that > making the developer community more heterogeneous is not only mandatory, but > something that can be achieved during the next months. > > > > ** Reliance on salaried developers ** > > Currently, StreamPipes receives support from salaried developers, > mainly research scientists from FZI. However, all core developers > substantially work on StreamPipes in their spare time. As this has > been the case from the beginning in early 2014, it can be expected > that a substantial portion of volunteers will continue to be working > on the project and we aim at strengthening the base of non-paid > committers and paid committers of other companies. At the same time, > funding of the initial StreamPipes team is secured by public funding > for the next few years, making sure that there will be also enough commitment > from developers during their work time. > > > > ** Relationships with other Apache products ** StreamPipes is often > compared to tools such as Node-Red and Apache Nifi. This is mainly > based on a similar UI concept (dataflow approach). Despite some > technological differences (e.g., the microservice analytics approach > vs. single-host runtime of Node-Red, the wrapper architecture and the > underlying semantics-based model), we believe the target audience > differs. We aim to collaborate with the Apache Nifi community in terms > of exchanging best practices and also integrating both projects (e.g., by > building connectors). > > As mentioned above, quite a few adapters and data sinks are already > available that link to existing Apache projects. > > > > ** An excessive fascination with the Apache Brand ** Although we > recognize the Apache brand as the most visible brand in the open > source domain, the primary goal of this proposal is not to create > publicity, but to widen the developer base. We believe that successful > projects have broad and diverse communities. We expect that an Apache > project, with a clear and proven way to develop open source software, > helps in finding new committers. As the core development team has > already worked on StreamPipes for the past few years and is fully > committed to the software and its benefit for the industrial IoT > domain, we would also continue development without being an Apache project. > > > > === Documentation === > > Currently, we host a website at https://www.streampipes.org More > technical info (user + developer guide) can be found in the documentation: > https://docs.streampipes.org, where users can find tutorials and > manuals on how to extend StreamPipes using the SDK. > > > > === Initial Source === > > Currently, the following Github repositories exist, all licensed under > the Apache Software License 2.0: > > * streampipes (https://www.github.com /streampipes/streampipes, the > backend & pipeline management module) > > * streampipes-ui (https://www.github.com/streampipes/streampipes-ui, > the UI module) > > * streampipes-pipeline-elements ( > https://www.github.com/streampipes/streampipes-pipeline-elements, > library of data processors and sinks) > > * streampipes-connect-adapters ( > https://www.github.com/streampipes/streampipes-connect-adapters, > StreamPipes connect adapters) > > * streampipes-docs > (https://www.github.com/streampipes/streampipes-docs, > the abovementioned documentation) > > > > === Source and intellectual property submission plan === All initial > committers will sign a ICLA with the ASF. FZI, as the organizational > body that has employed the main contributors of StreamPipes, will sign > a CCLA and donate the codebase to the ASF (both subject to formal > approval). All major contributors are still active in the project. > > > > === External Dependencies === > > We did an initial review of all dependencies used in the various projects. > No critical libraries that depend on category X licenses were found, > some minor issues have already been resolved (e.g., removing > dependencies to org.json libraries). Most external dependencies used > by the Java-based (backend, pipeline-elements and connect) modules are > licensed under the Apache License 2.0, whereas some licenses are Cat B > (e.g., CDDL). Most external dependencies the UI requires on are licensed > under the MIT license. > > Once we are moving to the Incubator, we would do a complete check of > all transitive dependencies. We don't expect any surprises here. > > > > === Cryptography === > > (not applicable) > > > > === Required Resources === > > ** Mailing Lists ** > > We plan to use the following mailing lists: > > * us...@streampipes.incubator.apache.org<mailto: > us...@streampipes.incubator.apache.org> > > * d...@streampipes.incubator.apache.org<mailto: > d...@streampipes.incubator.apache.org> > > * priv...@streampipes.incubator.apache.org<mailto: > priv...@streampipes.incubator.apache.org> > > * comm...@streampipes.incubator.apache.org<mailto: > comm...@streampipes.incubator.apache.org> > > As StreamPipes is targeted to a non-technical audience, we see a > dedicated user mailing list as an important requirement to help users. > > > > ** Subversion directory ** > > (not applicable) > > > > ** Git repositories ** > > We would like to use Git for source code management and enable Github > mirroring functionality. > > > > As we plan to merge some of the repos described above to simplify the > release process we ask to create the following source repositories: > > * streampipes (containing backend + UI) > > * streampipes-extensions (containing modules that can be dynamically > installed at runtime: pipeline elements and connect adapters) > > * streampipes-website (containing docs + website) > > > > ** Issue tracking ** > > JIRA ID: StreamPipes > > > > === Initial Committers === > > List of initial committers in alphabetical order: > > Christofer Dutz (christofer.dutz at c-ware dot de) Dominik Riemer > (dominik dot riemer at gmail dot com) Johannes Tex (tex at fzi dot de) > Patrick Wiener (wiener at fzi dot de) Philipp Zehnder (zehnder at fzi > dot de) > > > > === Sponsors === > > ** Champion ** > > * Christofer Dutz (christofer.dutz at c-ware dot de) > > > > ** Mentors ** > > * Christofer Dutz (christofer.dutz at c-ware dot de) > > * Julian Feinauer (Jfeinauer at apache dot org) > > * Justin Mclean (justin at classsoftware dot com) > > > > ** Sponsoring Entity ** > > The Apache Incubator > >