incubator-general mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Tony Faustini <>
Subject [PROPOSAL] Tempo - A proposal for an enterprise IoT platform
Date Wed, 02 Dec 2015 20:34:50 GMT

Hi All, Litbit is an enterprise IoT company comprised of individuals
that have worked for Yahoo, Apple, Microsoft, Sun Microsystems, Intel,
Cisco Systems and 365 Main. We are working with some of the world's
leading companies providing them with an enterprise IoT platform. We
value the open source community and the way it is changing enterprise
software. We are eager to build an open source community around Tempo
which powers RhythmOS our commercial offering.

-Tony Faustini (Litbit Co)

Tempo - A Proposal for Apache Incubator


The Apache Foundation has been very successful in bringing together
key software components that have enabled people to interact with each
other via a variety of content platforms and it will no doubt continue
to do so.  At the same time modern society is becoming increasingly
dependent on devices that interact with each other and with people.
The amount of data that will be produced by devices will be orders of
magnitude greater than what has been produced by humans in the past.
In addition, the orchestration of devices and people will be an
important area of growth for the foreseeable future. This new dynamic
will eventually become manifest in a growing number of Apache projects
that enable this to occur. Our wish is to contribute to this movement
by contributing the Tempo system to the Open Source Community via the
Apache Foundation. Tempo is an open platform to interconnect any and
all devices, sensors, people, and applications, henceforth referred to
as points, through a scalable, secure, and modular architecture,
enabling applications to generate analysis, create actions and/or add
intelligence to their behaviors and patterns.


Perhaps you are a homeowner configuring the interaction between your
family and all the smart devices in your home. Or you might be a
global company orchestrating millions of devices and people across
different continents.  Either way you face the same fundamental
problem; namely, how do you manage many points in a secure robust and
meaningful manner?  Tempo is an open source software system that
enables homeowners and global companies to download a software system
that provides secure and robust orchestration.

The Tempo system consists of a variety of components:

- A basic but extensible desktop
- An extensible mechanism for capturing data from a variety of sources
- A set of translators that feed the data capture mechanism and a
framework for the development of additional translators
- A secure means of moving data using digital envelopes based on
symmetric and asymmetric encryption and decryption via Apache Kafka
- Optionally maintaining data encrypted in a datastore
- Support for a variety of data repositories
- Authentication and authorization using oAuth2
- Secure APIs for access to data and the system information
- User management
- Device management
- Automated software upgrades via Salt
- Configuration management
- Robust basic infrastructure based on Apache Mesos that enables scalability
- Dockerized applications


We are in the midst of a revolution in which the Internet of Things
(IoT) is poised to impact the development of our society in ways we
can not even begin to imagine. Unfortunately, we know of no coherent
OSS (Open Source Software) solution that can harness the
potentialities of this increasingly important trend. Manufacturers of
IoT devices, both in the consumer and industrial spaces, continue to
develop proprietary systems. Tempo is an open source IoT system that
creates an open source solution enabling the orchestration of IoT
devices that brings the benefits of OSS to this space. Tempo was
initially developed by Litbit and is deployed in a growing number of
Industrial contexts, especially in the context of Data Center


Tempo is a general platform for orchestrating IoT devices in both
consumer and industrial contexts. It is complementary to the existing
Apache projects and is itself built using of a number of Apache
projects.  Bringing Tempo into Apache is very beneficial to both the
Apache community and the IoT community.

The rapid growth of IoT needs to be harnessed in the Open Source
Community. We believe the Apache Foundation is a great fit as the
long-term home for Tempo, as it provides an established process for
community-driven development and decision making by consensus. This is
exactly the model we want for future Tempo development.

Initial Goals

Move the existing codebase to Apache
Integrate with the Apache development process
Ensure all dependencies are compliant with Apache License version 2.0
Incremental development and releases per Apache guidelines

Current Status

Tempo has undergone a major release (0.1) and is being used in
production by several global organizations. The Tempo codebase is
currently hosted at, which will seed the Apache git


We plan to invest in supporting a meritocracy. We will discuss the
requirements in an open forum. Several companies have already
expressed interest in this project, and we intend to invite additional
developers to participate. We will encourage and monitor community
participation so that privileges can be extended to those that


The need for an open source IoT orchestration system is tremendous.
Tempo is currently being used by several organizations worldwide. By
bringing Tempo into Apache, we believe that the community will quickly
grow and become a significant Apache offering.

Core Developers

Tempo was initially developed at Litbit by the following individuals:

Rutvij Clerk
Miron Costant
Tony Faustini
Reza Hajebi
AmirHossein Jabbari
Shahin Mowzoon
Scott Noteboom
Sydney Noteboom
Omkar Prabhu
Don Shields


IoT orchestration is in need of an Open Source Solution. We believe
Tempo can be that solution and fill this need  in the Apache
Foundation's offerings. We believe that Tempo will remove the barriers
imposed by proprietary solutions and usher in significant growth for
the Apache Foundation. The alignment is also beneficial to other
Apache communities (such as Zookeeper, Kafka, and Mesos). We could
include additional sub-projects in the future.

Known Risks

Orphaned Products

There will be an initial need to ensure the availability and
robustness of an initial offering so that contributors and users are
highly incentivized to continue development. To this  extent,
organizations can be encouraged to build critical business
applications around Tempo and the risk of the project being abandoned
will be minimized.

Inexperience with Open Source

Our lack of experience with Open Source is an area we will need
significant accompaniment with. We are more than willing to invest
time and resources to create a healthy open source project. During
that time, we will curate an open-source community and attract growing
numbers of developers from a diverse group of contributors.

Homogenous Developers

The initial committers will be from Litbit, a well funded startup. We
plan to grow Tempo with an active community of developers, and we are
committed to recruiting additional committers based on their
contributions to the project.

Reliance on Salaried Developers

It is expected that Tempo development will occur on both salaried time
and on volunteer time, after hours. The majority of initial committers
are paid by Litbit to contribute to this project. However, they are
all passionate about the project, and we are confident that the
project will continue even if no salaried developers contribute to the
project. We are committed to recruiting additional committers
including non-salaried developers.

Relationships with Other Apache Products

As mentioned in the Alignment section, Tempo is closely integrated
with Zookeeper, Kafka, and Mesos. We look forward to collaborating
with those communities, as well as other Apache communities.

Deep Respect for the Apache Brand

Tempo will become a healthy and well known open source project. This
proposal is not for the purpose of generating publicity. Rather, the
primary benefits to joining Apache are those outlined in the Rationale


The reader will find these websites highly relevant:

Tempo website: Coming soon
Tempo documentation: Coming soon
Codebase: Becoming public soon
User group: Coming soon

Source and Intellectual Property Submission Plan

The Tempo codebase is currently hosted on Github. To give you some
idea of what we will be contributing here are some basic statistics
from our current Github

OAuth Server
      30 text files.
      30 unique files.
       5 files ignored. v 1.64  T=0.17 s (168.9 files/s, 101341.2 lines/s)

Language                     files       blank        comment      code
CSS                                7           2724              70       12148
Javascript                       5             144            254         1054
Python                          14               73              60
HTML                             2               15                7
SUM:                            28           2956            391        13450

Data Server
      21 text files.
      20 unique files.
       9 files ignored. v 1.64  T=0.08 s (208.7 files/s, 19657.5 lines/s)

Language                     files        blank        comment      code
Python                          15            196            290            829
make                              1              30                6
SUM:                            16            226            296            985

Management Server
     114 text files.
     110 unique files.
      16 files ignored. v 1.64  T=0.40 s (260.1 files/s, 59749.4 lines/s)

Language                     files       blank        comment       code
CSS                                7           2724              70
Python                          31             757            340
HTML                            61            383              32
Javascript                       5             144            254
make                              1               30                6
SUM:                           105           4038            702          19384

Data Pipeline
      81 text files.
      81 unique files.
      26 files ignored. v 1.64  T=0.32 s (177.3 files/s, 15377.2 lines/s)

Language                     files      blank     comment      code
Java                            54            609            909        2915
Maven                           1             16             24            408
XML                               2               0              1
SUM:                            57            625            934        3386

       5 text files.
       5 unique files.
       3 files ignored. v 1.64  T=0.03 s (90.1 files/s, 32463.5 lines/s)

Language                     files      blank        comment      code
Python                           3            113             78            890
SUM:                             3            113             78            890

Data Collector
      13 text files.
      12 unique files.
       4 files ignored. v 1.64  T=0.04 s (256.8 files/s, 18873.7 lines/s)

Language                     files        blank     comment      code
Cython                           1             50             49            318
Python                           8             56             40            220
Bourne Shell                  1               0              0                2
SUM:                            10            106             89          540

This is the exact codebase that we would migrate to the Apache foundation.

Upon entering Apache, Tempo will migrate to an Apache License 2.0 with
all contributions licensed to the Apache Foundation. In certain cases
if individuals or organizations hold copyright, we will ensure they
grant a license to the Apache Foundation. Going forward, all commits
will be licensed directly to the Apache foundation through our signed
Individual Contributor License Agreements for all committers on the

Upon entering Apache, Litbit will sign over copyright to the Apache foundation.

External Dependencies

To the best of our knowledge, all of Tempo dependencies (except 0MQ)
are distributed under Apache compatible licenses. Upon acceptance to
the incubator, we would begin a thorough analysis of all transitive
dependencies to verify this fact and introduce license checking into
the build and release process (for instance integrating Apache Rat).

Tempo has used 0MQ for some types of internal messaging, and 0MQ is
licensed under the GNU Lesser General Public License. We are in the
process of making the Tempo messaging layer pluggable, and plan to use
Netty (which is licensed under Apache License v2) as our default
messaging plugin (while keeping 0MQ as an optional plugin).


We do not expect Tempo to be a controlled export item due to the use
of encryption. Tempo enables encryptions via a digital envelope using:

RSA 128 Bits
AES 128 Bits

Required Resources

Mailing lists

tempo-private (with moderated subscriptions)

Subversion Directory

Git is the preferred source control system: git://

Issue Tracking

JIRA Tempo (Tempo)

Initial Committers

Pritesh Bharakhada < pritesh at e2logy dot com >
Rutvij Clerk <rutvij at litbit dot com>
Miron Costant <miron at litbit dot com>
Tony Faustini <tony at litbit dot com >
Reza Hajebi <reza at litbit dot com>
Amirhossein Jabbari < amirhossein at litbit dot com>
Shahin Mowzoon <shahin at litbit dot com>
Scott Noteboom < notebooms at litbit dot com>
Sydney Noteboom <sydney at litbit dot com>
Shailesh Patel < shailesh at e2logy dot com >
Omkar Prabhu <omkar at litbit dot com >
Bill Salter <bsalter at enviseco dot com >
Don Shields <dshields at litbit dot com >


Pritesh Bharakhada - e2logy
Rutvij Clerk - Litbit
Miron Costant - Litbit
Tony Faustini - Litbit
Reza Hajebi - Litbit
Amirhossein Jabbari - Litbit
Shahin Mowzoon - Litbit
Scott Noteboom - Litbit
Sydney Noteboom - Litbit
Shailesh Patel - e2logy
Omkar Prabhu - Litbit
Bill Salter - Envise
Don Shields - Litbit



We are looking for a champion

Nominated Mentors


Sponsoring Entity

The Apache Incubator

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message