Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
842a01d
Just triggering a build
SteveRosam Jan 26, 2024
3ff47b7
Merge pull request #245 from quixio/chore/sdk-docs
SteveRosam Jan 26, 2024
d0f8836
[update] - changelogs
Feb 5, 2024
b46d881
[update] - tune for seo
Feb 5, 2024
1f2c278
[fix] - remove two instances of a colon
Feb 5, 2024
e76b89d
[fix] - tweaks for seo
Feb 5, 2024
df26458
[fix] - correct tile link text
Feb 5, 2024
ea54b0a
Merge pull request #246 from quixio/update-changelog-05022024
tbedford Feb 5, 2024
fa39556
[fix] - remove some seo tweaks
Feb 5, 2024
cab1d88
[add] - more seo tweaks
Feb 5, 2024
ef48aee
[fix] - handle new image link from main readme
Feb 5, 2024
2711278
[fix] - use image without transparency to work in dark mode
Feb 5, 2024
d9b784d
[fix] - quix-streams missing from path
Feb 5, 2024
9c2ad83
Merge pull request #248 from quixio/tonybedford/sc-53620/broken-image…
tbedford Feb 6, 2024
f558112
Merge pull request #247 from quixio/tonybedford/sc-51940/gtm-update-d…
tbedford Feb 6, 2024
6dcf09b
adding markdown version of vectorization notebook
merlin-quix Feb 6, 2024
d7fcb4b
adding correct colab link
merlin-quix Feb 6, 2024
86ca191
updating TOC and renaming path
merlin-quix Feb 6, 2024
9e43ff3
fixing dumb indentation issue
merlin-quix Feb 6, 2024
9eccded
added missing heading number
merlin-quix Feb 6, 2024
bf67caa
fixing more numbering
merlin-quix Feb 6, 2024
241c02e
fixing heading inconsistency
merlin-quix Feb 6, 2024
48f9774
[chore] - revert changes made by autoformatter
Feb 6, 2024
b79f11a
[chore] - update copyright year
Feb 6, 2024
47ea9f2
[chore] - fix minor issues such as python syntax colouring not working
Feb 6, 2024
f91267a
[chore] - fix minor issues and typos
Feb 6, 2024
1a4eced
[fix] - typo
Feb 6, 2024
3d8d486
Merge pull request #249 from quixio/add-vectorization-tutorial-notebook
tbedford Feb 6, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/build-commit-subfolder.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,7 @@ jobs:
# sed -i 's/old-text/new-text/g' input.txt
- name: Update intro.md
shell: bash
run: "sed -i 's,https://github.com/quixio/.github/blob/main/profile,./assets,g' docs/quix-streams/quix-streams-intro.md"
run: "sed -i 's,https://github.com/quixio/quix-streams/blob/main/images,./assets,g' docs/quix-streams/quix-streams-intro.md"

# Change image paths from ./images to ./assets/client-library
- name: Update intro.md
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/sync-build-deploy.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,7 @@ jobs:
# sed -i 's/old-text/new-text/g' input.txt
- name: Update intro.md
shell: bash
run: "sed -i 's,https://github.com/quixio/.github/blob/main/profile,./assets,g' docs/quix-streams/quix-streams-intro.md"
run: "sed -i 's,https://github.com/quixio/quix-streams/blob/main/images,./assets,g' docs/quix-streams/quix-streams-intro.md"

# Change image paths from ./images to ./assets/client-library
- name: Update intro.md
Expand Down
940 changes: 132 additions & 808 deletions CHANGELOG.md

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Quix Developer Documentation

[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
[![Build](https://github.com/quixio/quix-docs/actions/workflows/sync-build-deploy.yaml/badge.svg)](https://github.com/quixio/quix-docs)

Expand Down
2 changes: 1 addition & 1 deletion changelogs/2022-archive.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# 2022 changelog archive
# Quix product 2022 changelog archive

## 1.43.0 | 3 NOVEMBER 2022

Expand Down
847 changes: 847 additions & 0 deletions changelogs/2023-archive.md

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions docs/get-started/welcome.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Welcome to Quix developer documentation
# Quix developer docs

<p style="font-size: 1rem;">Quix is a complete solution for building, deploying, and monitoring event streaming applications.</p>
<p style="font-size: 1rem;">Quix is a complete platform for building, deploying, and monitoring stream processing pipelines.</p>

<div>
<a class="md-button md-button--primary" href="./quickstart.html" style="margin-right:.5rem;">Quickstart</a>
Expand All @@ -27,25 +27,25 @@ If you're new to Quix, here are some resources to help get you started quickly.

---

Build a complete event streaming application in under 30 minutes.
Build a complete Python stream processing application in under 30 minutes.

[Quix Tour :octicons-arrow-right-24:](./quixtour/overview.md)

- __Create a project from scratch__
- __Get started with a project template__

---

Learn how to create your own Quix project from scratch.
Dig deep into Quix using one of our project templates.

[Create a project :octicons-arrow-right-24:](../create/overview.md)
[Project templates :octicons-arrow-right-24:](../get-started/project-templates.md)

- __Get started with a project template__
- __Learn about Quix Streams__

---

Dig deep into Quix using one of our project templates.
Learn about Quix Streams, the open source Python stream processing library for Quix.

[Project templates :octicons-arrow-right-24:](../get-started/project-templates.md)
[Quix Streams :octicons-arrow-right-24:](../quix-streams/quix-streams-intro.md)

</div>

Expand Down
61 changes: 42 additions & 19 deletions docs/get-started/what-is-quix.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
---
title: What is Quix?
description: Quix is a complete solution for building, deploying, and monitoring stream processing pipelines with Python, Docker, Kafka, and Git.
---

# What is Quix?

Quix is a complete solution for building, deploying, and monitoring event streaming applications.
Quix is a complete platform for building, deploying, and monitoring streaming data pipelines. It enables software developers, data scientists, and data engineers who use Python to focus on app development and extracting value from real-time data pipelines, rather than dealing with the underlying infrastructure.

Streaming data applications, where you need to process time series or event data in order to make decisions in real time, is what Quix is designed for.

Expand All @@ -14,28 +19,39 @@ Quix has excellent synergy with Machine Learning (ML) systems too. You can quick

[Sign up for free](https://portal.platform.quix.io/self-sign-up){target=_blank}.

## Quix in brief

Briefly, here's how you would build a stream processing pipeline with Quix:

1. Configure data sources and destinations (see [connectors](#connectors)).
2. Write your stream processing application in Python using [Quix Streams](../quix-streams/quix-streams-intro.md), an open source stream processing library.
3. Deploy your application to production. The application takes input data from a source and transforms it. When stream processing is finished, output data is sent to a destination system.
4. Use Quix’s built-in observability tools to continuously monitor your pipeline and quickly identify any issues.

## Reducing complexity

Quix is also designed to remove as much complexity as possible from the process of creating, deploying, and monitoring your event streaming applications.
Quix is designed to remove as much complexity as possible from the process of creating, deploying, and monitoring your streaming data pipelines.

Quix leverages industry-standard technologies, such as Kafka to provide the core functionality for streaming data, Kubernetes for scaling your deployments, InfluxDB and MongoDB for data persistence, Git for revision control, and Python as the main language for programming your solutions.
Quix leverages industry-standard technologies, such as Kafka to provide the core functionality for data streaming, Kubernetes for scaling your deployments, InfluxDB and MongoDB for data persistence, Git for revision control, and Python as the main language for programming your solutions.

The following sections take a look at the key components of creating your streaming data solutions:

* Connecting your data to Quix
* Developing your application
* Quix Cloud online development platform
* Quix architecture
* Integrating your data with Quix
* Building your Python stream processing pipelines with Quix
* Deploying (and scaling) pipelines
* Monitoring and managing your data

While this short introduction to Quix is intentionally brief, there are abundant links for more detailed information you can follow to increase your knowledge of Quix. Alternatively, simply drop into the [Quix Community](https://quix.io/slack-invite){target=_blank} and ask any question you may have.

## Quix Cloud

Quix Cloud provides everything a developer needs to build industrial-strength event streaming applications.
Quix Cloud provides everything a developer needs to build industrial-strength stream processing applications.

The components that make up the Quix Cloud enable developers to:

* Use a full web-based IDE with version control and logging, to build, deploy, and monitor their event streaming applications.
* Use a full web-based IDE with version control and logging, to build, deploy, and monitor their Python stream processing applications.
* Have abstracted access to underlying broker infrastructure, including fully-managed Kafka topics.
* Single-click deployment to the Quix serverless compute environment for hosting your web-based real-time streaming applications.
* Connect existing web applications and IoT clients.
Expand All @@ -48,7 +64,7 @@ Similarly, Quix provides Quix-hosted Kafka, but you can also use Confluent Cloud

This section describes the main technical components and architecture of Quix.

![Quix Technical Architecture](../images/quix-technical-architecture.png)
![Quix Technical Architecture](../images/quix-technical-architecture.jpg)

### Quix UI

Expand All @@ -64,16 +80,22 @@ To achieve these goals, the Quix UI includes the following features:

* **Code Samples**: Choose from the [prebuilt Code Samples](../connectors/index.md) ready to run and deploy from the IDE.

* **Project templates**: Open source application templates that demonstrate what’s possible with Quix. You can fork them and use them as a starting point to build your own Python stream processing pipelines.

* **One-click deployments**: Configure, deploy, and manage your streaming applications with a simple user interface.

* **Monitoring tools**: Monitor the status and data flow of your streaming applications in real time.

* **Broker management**: Create, delete, explore and configure your self-hosted message broker infrastructure from the UI.

* **Built-in secrets management**: Store the passwords and APIs your stream processing pipelines need securely.

* **Pipeline view**: Visualize your pipeline architecture with the information provided from the deployment variables. You can also monitor your pipeline in real time.

* **Data Explorer**: Explore live and historical data of your applications to test that your code is working as expected.

* **Command-line Interface (CLI)**: Powerful command-line tool for managing all aspects of your Python stream processing pipelines, including permissions.

### Git integration

Quix has the ability to create projects where all code and configuration is contained in a Git repository. This Git repository can be hosted by Quix (using Gitea), or on any third-party Git provider, such as GitHub, or Bitbucket, where you can configure the Quix SSH public key provided to you for Git provider authentication. This helps integrate Quix with your existing workflows.
Expand All @@ -92,7 +114,7 @@ This enables you to select a Kafka hosting option according to requirements. For

!!! tip

To get your event streaming application to the testing stage as quickly as possible, the Quix-hosted Kafka option is recommended, as it requires zero configuration to get Kafka running. You can focus on your application code, without needing to do the up front work of creating a powerful scalable Kafka cluster, as that work has already been done for you by Quix.
To get your Python stream processing applications to the testing stage as quickly as possible, the Quix-hosted Kafka option is recommended, as it requires zero configuration to get Kafka running. You can focus on your application code, without needing to do the up front work of creating a powerful scalable Kafka cluster, as that work has already been done for you by Quix.

Read more about [selecting your broker option](../create/create-environment.md#broker-settings).

Expand All @@ -102,15 +124,17 @@ When you create an application from a template in Quix, a Dockerfile is provided

### Infrastructure as code

When you develop your event streaming solution, you will build a pipeline of services that can be viewed in Quix. Each service in the pipeline is individually coded, using a standard component, a modified template, or even completely from scratch. Depending on the use case, pipelines can be quite complex, and in the past, this has made them time consuming to recreate. Now Quix supports infrastructure as code. Your entire pipeline can be defined by a single `quix.yaml` file, and this file can be used to completely and easily reconstruct a pipeline from its corresponding repository.
When you develop your Python stream processing applications, you build a pipeline of services that can be viewed in Quix. Each service in the pipeline is individually coded, using a standard component, a modified template, or even completely from scratch. Depending on the use case, pipelines can be quite complex, and in the past, this has made them time consuming to recreate. Now Quix supports infrastructure as code. Your entire pipeline can be defined by a single `quix.yaml` file, and this file can be used to completely and easily reconstruct a pipeline from its corresponding repository.

## Interfacing with Quix
## Integrating your data with Quix

There are [various ways](../develop/integrate-data/overview.md) to connect your data to Quix. Quix provides a number of [connectors](../connectors/index.md) that you can use with only some simple configuration. In addition, there are a range of [APIs](#apis), both REST and WebSockets that are available. There is also the [Quix Streams](#quix-streams) client library, that can be used to get data quickly and easily into Quix.

For a simple example of getting data from your laptop into Quix, see the [Quickstart](quickstart.md).

Quix provides numerous standard [connectors](../connectors/index.md) for both source, and destination functions. In addition a number of transforms are also available.
### Connectors

Quix provides numerous standard [connectors](../connectors/index.md) for both source, and destination functions. These enable you to easily stream data in and out of Quix. In addition, a number of prebuilt data transforms to perform processing on your streaming data are also available.

!!! tip

Expand All @@ -127,13 +151,11 @@ Quix provides several APIs to help you work with streaming data. These include:

### Quix Streams

As you will notice as you explore the various open source code samples and connectors that come with Quix, Quix also provides a complete client library, Quix Streams, to reduce development times, and provide advanced features such as automatic scaling through Streams.
As you will notice as you explore the various open source code samples and connectors that come with Quix, Quix also provides a complete client library, Quix Streams, to reduce development times, and provide advanced features such as automatic scaling through Streams. Quix Streams is somewhat similar to Kafka Streams, in the sense that both libraries process data from a Kafka topic. However, unlike Kafka Streams, Quix Streams enables you to process data using pure Python.

Python is the dominant language for data science, data engineering, and machine learning, but it needs to be interfaced carefully with streaming technologies, such as Kafka, which are predominantly written in Java and Scala.

Quix Streams provides Python and C# developers with a client library that abstracts the complexities of building streaming applications.

For Python developers, Quix Streams can provide streaming data packaged in a data frame, so you can write data processing logic and connect it directly to the abstracted broker. Developers can read about the most important streaming concepts in the [Quix Streams introduction](../quix-streams/client-library-intro.md).
For Python developers, Quix Streams can provide streaming data packaged in a data frame, so you can write data processing logic and connect it directly to the abstracted broker. Developers can read about the most important streaming concepts in the [Quix Streams introduction](../quix-streams/quix-streams-intro.md).

## Building with Quix

Expand All @@ -143,7 +165,7 @@ These are described in more detail in the following sections.

### Pipelines

Event stream processing is implemented by building pipelines consisting of a series of applications deployed to Kafka and Kubernetes clusters. These processing pipelines are now described by a single YAML file, `quix.yaml`. With just this file, you can reconstruct any pipeline.
Python stream processing applications are implemented by building pipelines consisting of a series of applications deployed to Kafka and Kubernetes clusters. These stream processing pipelines are described by a single YAML file, `quix.yaml`. With just this file, you can reconstruct any pipeline.

Further, changes in this file in one environment can be merged into another environment, giving you the ability to test changes in one environment, before deploying into another, while the change history is retained in Git.

Expand All @@ -158,16 +180,17 @@ You can see how to build a simple pipeline in the [Quix Tour](./quixtour/overvie

### Multiple environments

In Quix you create a project to contain your event stream processing pipeline. A project corresponds to a Git repository, either hosted by Quix, or alternatively using an external Git provider such as GitHub. Within a project you can create multiple environments, containing your event stream processing pipelines. Each environment is associated with a Git branch, so that you can embrace the full Git workflow, having for example, production, staging and development branches. You can also configure your preferred Kafka hosting option for the environment too, for example you can choose Quix-hosted Kafka, self-hosted Kafka, or Confluent Cloud.
In Quix you create a project to contain your Python stream processing application. A project corresponds to a Git repository, either hosted by Quix, or alternatively using an external Git provider such as GitHub. Within a project you can create multiple environments, containing your stream processing pipelines. Each environment is associated with a Git branch, so that you can embrace the full Git workflow, having for example, production, staging and development branches. You can also configure your preferred Kafka hosting option for the environment too, for example you can choose Quix-hosted Kafka, self-hosted Kafka, or Confluent Cloud.

### Monitoring and managing your data
## Monitoring and managing your data

Quix provides a suite of tools to enable you to monitor and manage your data. These include:

* Data Explorer - The Data Explorer enables you to view your data graphically in real time. Graph, table and messages views.
* Logs - Real-time logging information is displayed in a console tab. You also have the option of downloading your logs.
* CPU monitor - you can monitor the CPU utilization of your deployment in real time.
* Memory monitor - you can monitor the memory usage of the deployment in real time.
* CLI - a powerful command line interface (see the [CLI documentation](../get-started/cli.md)).

[See the Data Explorer in action](https://www.loom.com/share/0e3c24fb5f8c48038fe5cf02859b7ebc?sid=743fbdf7-fad5-4c26-831d-b6dad78b9b06).

Expand Down
Binary file added docs/images/quix-technical-architecture.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed docs/images/quix-technical-architecture.png
Binary file not shown.
Loading