This vote passes with the following votes
+1 binding
Katherine Marsden, Luciano Resende, Raymond Feng, Daniel Debrunner,
Flavio Junqueira, Arvind Prabhakar, James Taylor, Julian Hyde, Phillip
Rhodes, Charitha
Note:Dan and I were confirmed as IPMC members this morning, so I
updated our votes to binding.
+1 non-binding
Kathy Saunders, Sandeep Deshmukh, Bhupesh Chawda, Amol Kekre, William
Marshall
0 - none
-1 - none
Final tally is 10 binding +1, 5 non-binding +1, and no other votes.
Thank you everyone for voting.
Congratulations to the Quarks community! I will start the process with
the other mentors, community, and infrastructure to get the project set
up in the incubator.
Best
Kathey
On 2/24/2016 9:01 AM, Katherine Marsden wrote:
The Quarks proposal has been discussed on the incubator list. The
discussion thread is at:
http://mail-archives.apache.org/mod_mbox/incubator-general/201602.mbox/%3c56c27489.7090...@apache.org%3E
Feedback from the discussion including addition of mentor Justin
Mclean has been incorporated into the proposal below and available on
the wiki at:
https://wiki.apache.org/incubator/QuarksProposal
Please cast your vote to:
[] +1 - accept Quarks as a new incubating project
[] 0 - not sure
[] -1 - do not accept the Quarks project (because: ...)
Thanks,
Kathey Marsden
= Quarks Proposal =
=== Abstract ===
Quarks is a stream processing programming model and lightweight
runtime to execute analytics at devices on the edge or at the gateway.
=== Proposal ===
. Quarks is a programming model and runtime for streaming analytics
at the edge. Applications are developed using a functional flow api
to define operations on data streams that is executed as a graph of
"oplets" in a lightweight embeddable runtime. The SDK provides
capabilities like windowing, aggregation and connectors with an
extensible model for the community to expand its capabilities.
=== Background ===
. Stream processing systems are commonly used to process data from
edge devices and there is a need to push some of the streaming
analytics to the edge to reduce communication costs, react locally
and offload processing from the central systems. Quarks was developed
by IBM as an entirely new project to provide an SDK and lightweight
embeddable runtime for streaming analytics at the edge. Quarks was
created to be an open source project that could provide edge
analytics to a broad community and foster collaboration on common
analytics and connectors across a broad ecosystem of devices.
=== Rationale ===
. With the growth in number of connected devices (Internet of
Things) there is a need to execute analytics at the edge in order to
take local actions based upon sensor information and/or reduce the
volume of data sent to back-end analytic systems to reduce
communication cost.
Quarks rationale is to provide consistent and easy to use
programming models to allow application developers to focus on their
application rather than issues like device connectivity, threading
etc. Quarks' functional data flow programming model is similar to
systems like Apache Flink, Beam (An incubating Apache project), Java
8 Streams & Apache Spark. The API currently has language bindings
for Java8, Java7 and Android. Quarks was developed to address
requirements for analytics at the edge for IoT use cases that were
not addressed by central analytic solutions. We believe that these
capabilities will be useful to many organizations and that the
diverse nature of edge devices and use cases is best addressed by an
open community. Therefore, we would like to contribute Quarks to the
ASF as an open source project and begin developing a community of
developers and users within Apache.
=== Initial Goals ===
. Quarks initial code contribution provides:
* APIs for developing applications that execute analytics using a
per-event (data item) streaming paradigm including support for
windows against a stream for aggregation
* A micro-kernel style runtime for execution.
* Connectors for MQTT, HTTP, JDBC, File, Apache Kafka & IBM Watson
IoT Platform
* Simple analytics aimed at device sensors (using Apache Common Math)
* Development mode including a web-console to view the graph of
running applications
* Testing mechanism for Quarks applications that integrates with
assertion based testing systems like JUnit
* Android specific functionality such as producing a stream that
contains a phone's sensor events (e.g. ambient temperature, pressure)
* JUnit tests
.
. All of the initial code is implemented using Java 8 and when built
produces jars that can execute on Java 8, Java 7 and Android. The goal
is to encourage community contributions in any area of Quarks, to
expand the community (including new committers) and use of Quarks. We
expect contributions will be driven by real-world use of Quarks by
anyone active in the IoT space such as auto manufactures, insurance
companies, etc. as well as individuals experimenting with devices
such as Raspberry Pis, Arduinos and/or smart phone apps etc.
Contributions would be welcomed in any aspect of Quarks including:
.
* Support for additional programming languages used in devices such
as C, OpenSwift, Python etc.
* Specific device feature (e.g. Raspberry Pi, Android) or protocol
(e.g. OBD-2) support
* Connectors for device to device (e.g. AllJoyn), device local data
sources, or to back-end systems (e.g. a IoT cloud service)
* Additional analytics, either exposing more functionality from
Apache Common Math, other libraries or hand-coded analytics.
* Improvements to the development console, e.g. additional
visualizations of running applications
* Documentation, improving existing documentation or adding new
guides etc.
* Sample applications
* Testing
.
The code base has been designed to be modular so that additional
functionality can be added without having to learn it completely,
thus new contributors can get involved quickly by initially working
on a focused item such as an additional analytic or connector. The
only constraints on contributions will be to keep Quarks on its focus
of IoT and edge computing, with attributes such as small footprint
and modularity to allow deployments to only include what is needed
for that specific device and/or application.
=== Current Status ===
. Quarks is a recently released project on Github
http://quarks-edge.github.io. The current code is alpha level code
but is functional and has some basic tests. The team is looking
forward to working in the Apache community to enhance the
functionality to allow robust streaming of devices on the edge.
==== Meritocracy ====
. Quarks was originally created by Dan Debrunner, William Marshall,
Victor Dogaru, Dale LaBossiere and Susan Cline. We plan to embrace
meritocracy and encourage developers to participate and reach
committer status. Dan Debrunner was the initial creator of the
Apache Derby code and a committer when Derby was accepted into
incubation. He is an Apache member and has experience with the
Apache Way. Derby is a successful project that embraces the Apache
meritocracy and graduated from incubation with a diverse group of
committers.
.
. With an abundance of devices that potentially can take advantage
of Quarks, there is a large pool of potential contributors and
committers. The initial team is enthusiastic about assisting and
encouraging involvement.
==== Community ====
. Quarks currently has a very small community as it is new, but our
goal is to build a diverse community at Apache. The team strongly
believes that a diverse and vibrant community is critical as devices
on the edge vary quite a bit. The community will benefit from
developers who have expertise in various devices. We will seek to
build a strong developer and user community around Quarks.
==== Core Developers ====
. The initial developers have many years of development experience in
stream processing. The initial development team includes developers
who have experience with Apache, including one Apache member, and
with other open source projects on Github.
=== Alignment ===
. Quarks interacts with other Apache solutions such as Apache Kafka
and Apache Spark. Quarks is API driven, modular and written in 100%
java, making it easy for developers to pick up and get involved.
=== Known Risks ===
==== Orphaned products ====
. The contributors are from a leading vendor in this space, who has
shown a commitment to Apache projects in the past. They are
committed to working on the project at least for the next several
years, as the community grows and becomes more diverse.
==== Inexperience with Open Source ====
. Several of the core developers have experience with Apache,
including a developer who is a committer on Derby and an Apache
member. All of the core developers have some level of experience
with the use of open source packages and with contributions on
projects on sites such as GitHub.
==== Homogenous Developers ====
. The initial set of developers come from one company, but we are
committed to finding a diverse set of committers and contributors.
The current developers are already very familiar with working with
many geographies, including developers in most geographies around the
world. They are also very comfortable working in a distributed
environment.
==== Reliance on Salaried Developers ====
. Quarks currently relies on salaried developers at this time, but
we expect that Quarks will attract a diverse mix of contributors
going forward. For Quarks to fully transition to an "Apache Way"
governance model, we will embrace the meritocracy-centric way of
growing the community of contributors.
==== Relationships with Other Apache Products ====
. These Apache projects are used by the current codebase:
.
* Apache Ant - Build
* Apache Common Math - Initial analytics
* Apache HTTP Components HttpClient - HTTP connectivity
* Apache Kafka - Kafka is supported as a message hub between edge
Quarks applications and back-end analytics systems Events from Quarks
applications sent through message hubs (such as Apache Kafka) may be
consumed by back-end systems such as Apache Flink, Apache Spark,
Apache Samza, Apache Storm, Beam (in incubation) or others.
==== A Excessive Fascination with the Apache Brand ====
. Quarks will benefit greatly from wide collaboration with
developers working in the device space. We feel the Apache brand
will help attract those developers who really want to contribute to
this space. Several developers involved with this project have a
very positive history with Derby and feel that Apache is the right
place to grow the Quarks community. We will respect Apache brand
policies and follow the Apache way.
=== Documentation ===
. http://quarks-edge.github.io/quarks.documentation
=== Initial Source ===
. Quarks code has been recently released on Github under the Apache
2.0 license at https://github.com/quarks-edge/quarks . It was created
by a small team of developers, and is written in Java.
=== Source and Intellectual Property Submission Plan ===
. After acceptance into the incubator, IBM will execute a Software
Grant Agreement and the source code will be transitioned to the
Apache infrastructure. The code is already licensed under the Apache
Software License, version 2.0. We do not know of any legal issues
that would inhibit the transfer to the ASF.
=== External Dependencies ===
. The dependencies all have Apache compatible license. These include
Apache, MIT and EPL. The current dependencies are:
* D3
* Jetty
* Apache Kafka
* Metrics
* MQTTV3
* SLF4J
* GSON
* Apache commons Math3
.
. Development tools are
.
* Java SDK 8
* Eclipse 4.5
* Ant 1.9
* Junit 4.10
=== Cryptography ===
. No cryptographic code is involved with Quarks.
=== Required Resources ===
==== Mailing lists ====
. priv...@quarks.incubator.apache.org (with moderated subscriptions)
. d...@quarks.incubator.apache.org
. comm...@quarks.incubator.apache.org
==== Git Repository ====
. https://git-wip-us.apache.org/repos/asf/incubator-quarks.git
==== Issue Tracking ====
. Jira Project Quarks (QUARKS)
==== Other Resources ====
. Means of setting up regular builds and test cycle.
=== Initial Committers ===
.
* Daniel Debrunner: djd at apache dot org - CLA on file
* Susan Cline: home4slc at pacbell dot net - CLA on file
* William Marshall: wcmarsha at gmail dot com - CLA on file
* Victor Dogaru: vdogaru at gmail dot com - CLA on file
* Dale LaBossiere: dml.apache at gmail dot com - CLA on file
=== Affiliations ===
* Daniel Debrunner IBM
* Susan Cline IBM
* William Marshall IBM
* Victor Dogaru IBM
* Dale Labossiere IBM
=== Additional Interested Contributors ===
* May Wone: mnwone at gmail dot com
* Sandeep Deshmukh: sandeep at datatorrent dot com
* Bhupesh Chawda: bhupeshchawda at gmail dot com
=== Sponsors ===
==== Champion ====
. Katherine Marsden (kmarsden at apache dot org)
==== Nominated Mentors ====
* Katherine Marsden (kmarsden at apache dot org)
* Daniel Debrunner (djd at apache dot org)
* Luciano Resende (lresende at apache dot org)
* Justin Mclean (justin at classsoftware dot com)
==== Sponsoring Entity ====
. The Incubator
---------------------------------------------------------------------
To unsubscribe, e-mail: general-unsubscr...@incubator.apache.org
For additional commands, e-mail: general-h...@incubator.apache.org