Skip to main content

Proton FAQ

On September 21, 2023, Timeplus announced the open source project: Proton. We're using this FAQ as the primary reference for learning about what Proton is, how we licensed the code open source, how you can use Proton today, and more.

What is Proton?

Proton is the core engine powering Timeplus, a unified streaming and historical data processing engine designed for efficiency and strong performance. Proton has no external service dependencies, which allows you to deploy it on bare metal, edge devices, within containers, or as part of an orchestrated cloud environment.

Proton builds on top of the popular open source ClickHouse project for its historical data, storage, computing functionality, and a portion of its query engine.

By leveraging the proven technologies of ClickHouse, Proton brings more mature online analytical processing (OLAP) capabilities to the open source community with lots of new development to unify the streaming and processing engines. You can use Proton alongside your existing ClickHouse deployment to enable additional functionality or replace your existing deployment with Proton or Timeplus.

How is Proton licensed?

Proton follows the ClickHouse licensing model with Apache License 2.0, which is also used by popular open source projects like Kubernetes and Apache Flink.

Apache License 2.0 is a permissive license that allows for most uses without restriction. We'll talk more about how you can use Proton in the following section.

We chose this license for a few important reasons:

  • We're following the path ClickHouse first paved. Because Proton leverages many excellent ClickHouse technologies, we hope to see our communities grow together and the two open source projects become more deeply integrated over time.

  • We want to see Proton push the limits of streaming and data processing in unique and exotic environments. While Proton already powers the enterprise-ready Timeplus Cloud, developers or other end users can download and deploy Proton or modify the code locally for use in a private cloud infrastructure. Using Proton does not require you adopt Timeplus Cloud or meet with our sales team.

  • We're eager to see what value a free streaming and historical data processing engine delivers. By releasing the single-node edition of Proton to the open source community, we're giving developers, hobbyists, enthusiasts, and anyone who wants to try new technologies a new path that's entirely free.

  • We're building a new community around unified streaming and data processing. ClickHouse paved the way for processing, but we have much to experiment and discover together around streaming. We can't wait to get feedback from developers and users within organizations of all sizes and degrees of streaming maturity.

What uses, commercial and beyond, are allowed with the Proton project?

Under Apache License 2.0, you are allowed to modify, distribute, and sublicense Proton as it's available on GitHub.

You can also include Proton in proprietary software that you then sell to customers, but that does not grant you any rights to use Proton or Timeplus trademarks or imply a commercial relationship or partnership between your organization and Proton or Timeplus.

Apache License 2.0 also prevents any contributor to Proton—a member of the Timeplus team or an outside contributor—from being held liable by end users, whether they are individual developers or commercial organizations.

What features are available with Proton versus Timeplus?

Proton powers unified streaming and data processing on a single database node. Its commercial counterpart supports advanced deployment strategy and includes enterprise-ready features. There are some other differences we would like to clarify.

ProtonTimeplus
Deployment
  • Single-node Docker image
  • Single binary on Mac/Linux
  • Single node
  • Cluster
  • Kubernetes-based “bring your own cloud” (BYOC)
  • Fully-managed cloud service with SOC2
Data sources
Data destinations (sinks)
  • External streams to Apache Kafka, Confluent Cloud, Redpand
  • Everything in Proton
  • Apache Pulsar
  • Slack
  • Webhook
  • Timeplus stream
Support
  • Community support from GitHub and Slack
  • Enterprise support via email, Slack, and Zoom, with a SLA

These details are subject to change, but we'll do our best to make sure they accurately represent the latest roadmaps for Proton and Timeplus.

My organization already uses ClickHouse—are there plans to integrate Proton with the open source ClickHouse project?

We would love to!

We are in conversation with the folks at ClickHouse, Inc., and the ClickHouse open source project at large, to scope the possibility of deep integration between the projects. We are working closely with the ClickHouse team to explore various options for integrating or re-using your existing ClickHouse deployment alongside Proton.

We publish a biweekly newsletter on LinkedIn—subscribe to be the first to know of updates to this developing partnership.

If I'm familiar with ClickHouse, how easy is it for me to use Proton?

Short answer: very easy. We designed Proton's usage to be similar to ClickHouse, with a few key differences:

  • Timeplus' default SQL query mode is streaming, which means it is long-running and continuously tracks and evaluates changed data and pushes results to users or target systems. To create a historical data query, wrap your SQL in table(stream).
  • The SQL keyword AS is required to create a temporary name for a table, stream, or a column.
  • We renamed data types and functions to remove camelcase. For example, ClickHouse's toInt8() is renamed to_int8() in Proton. Our functions docs have additional details.
  • Not all ClickHouse functions are currently enabled in Proton or work in a streaming query. If we should add or enhance the functions available in Proton, let us know in the GitHub issues for Proton.
  • Materialized Views in ClickHouse works for one source table, and data is processed at the index time. In Proton, you can define a Materialized View with a streaming SQL, for any number of streams, with JOIN, CTE, or subqueries. Proton continuously runs the query and sends the results to the internal stream or the target stream.
  • In Proton, JOINs are a powerful and flexible means of combining data from multiple sources into a single stream.

See the documentation for full usage details.

Is Proton usage tracked?

Yes. We have enabled telemetry in the following areas to understand how the community is using Proton and help us improve the project:

  • Via Docker image download statistics, which are provided by GitHub without any personally identifying information (PII), such as IP addresses.

  • On start, Proton reports the following data to a public endpoint:

    • Current Proton version
    • CPU and memory availability

No user data, schemas, SQL statements, or personally identifiable information (PII) is ever sent by Proton to this public endpoint.

You can disable telemetry in Proton via the environment variable TELEMETRY_ENABLED, such as docker run --env TELEMETRY_ENABLED=false --name proton ghcr.io/timeplus-io/proton:latest or update the configuration with the following steps:

  1. Start the Proton Docker image
  2. Connect to the running container with docker exec -it proton bin/sh
  3. Run the following command to edit the container's configuration:
sed -i 's/telemetry_enabled: true/telemetry_enabled: false/g' /etc/proton-server/config.yaml  
  1. Stop and start the container again to run Proton with all telemetry disabled.

If you use the single binary, the environment variable TELEMETRY_ENABLED also works. Alternatively, you can manually update config.yaml file to set telemetry_enabled: false.

See our privacy policy for complete details about the telemetry we collect and use.

Does Proton provide a JDBC/ODBC driver?

JDBC driver is available at https://github.com/timeplus-io/proton-java-driver, and the ODBC driver is available at https://github.com/timeplus-io/proton-odbc.

In the meanwhile, you can send the processed data to Kafka topics via External Stream, use the proton-go-driver, or benthos to send the data to other systems.

If you are on Timeplus Cloud, you can use the REST API or SDK to run queries or manage resources in Timeplus, via the API server, which is not part of Proton.

Can I contribute to Proton?

Yes!

The best way to get started is to check out the existing issues in the Proton repository on GitHub. We're also actively discussing future versions of Proton in the #proton and #contributing channels in our Timeplus Community Slack.

Where can I learn more about Proton?

We're currently building out resources where you can learn about Proton's architecture, features, and future:

We also discuss our journey to releasing Proton in open source in our announcement post.

How can I get started?

Learn how to pull and run the Proton image and query a test stream in our documentation. To see a more complete use case in action, using Proton, Redpanda, and sample live data, check out our tutorial that leverages Docker Compose.

If you need advanced deployment strategies or features, with Proton running behind the scenes, create your first workspace with Timeplus Cloud.