-
Notifications
You must be signed in to change notification settings - Fork 31
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Signed-off-by: Alex Collins <[email protected]>
- Loading branch information
Showing
4 changed files
with
61 additions
and
12 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
# Concepts | ||
|
||
## Pipelines & Steps | ||
|
||
A **pipeline** is specified by a Kubernetes custom resource and consists of one or more **steps**. Each step is | ||
specified as a | ||
**processor**, one or more **sources**, and one or more **sinks**. Messages are read from the source, sent to the | ||
processor, and then maybe written the output to the sink. | ||
|
||
## Sources | ||
|
||
A source is somewhere to get messages from, e.g.: | ||
|
||
* HTTP - a HTTP endpoint, the HTTP body is the message, | ||
* Kafka - a Kafka topic | ||
* Jetstream - a Jetstream subject | ||
|
||
[Learn more](SINKS.md) | ||
|
||
## Processors | ||
|
||
A processor is a function that processes messages: | ||
|
||
* Built-in: | ||
* Filter - filter out messages based on an expression | ||
* Map - map messages to new messages | ||
* Code - run Golang or Python function | ||
* Git - checkout a function from git and run it. | ||
* Container - run a container image to process the function | ||
|
||
All processors are actually containers that just listen on http://localhost:8080/messages and messages are sent in the | ||
body of each request to that endpoint. If the endpoint returns a body, then it is sent to the sink. | ||
|
||
You can write a processor in any language that can receive HTTP requests, and we provide SDKs so you don't even need to | ||
write that. Dataflow takes care of the messaging for you. | ||
|
||
[Learn more](PROCESSORS.md) | ||
|
||
## Sinks | ||
|
||
A sink is somewhere a message can be sent to, e.g.: | ||
|
||
* Log - write the message to a log file | ||
* HTTP - make a HTTP request where the message is the body | ||
* Kafka - write to a Kafka topic | ||
|
||
[Learn more](SOURCES.md) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters