Building Pipelines
As mentioned before, a Wombat pipeline is defined by a configuration file that describes how messages are processed. Writing configurations isn’t difficult at all. We even provide a generator for you to get started quickly:
Running this command will create a new pipeline configuration file called my_pipeline.yaml
that reads from stdin
,
applies a simple mapping processor, and writes to stdout
.
How brilliant is that!? You can now run your pipeline with:
Everything you type into the terminal will be processed by Wombat and written back to the terminal. Obviously our job is done now and we can relish in the glory of our creation.
Structure
But just in case you are still hungry for more, here is a more detailed explanation of the configuration file. The configuration structure is made up of a number of root sections:
- Core Components
- Observability Components
- Resource Components
Each of these sections can contain a number of components that are used to define the behaviour of the pipeline.
Core Components
Every Wombat pipeline configuration at least has one input
and one output
. A pipeline
section containing allowing parallel execution is optional. Some more advanced pipeline configurations might want to
rely on a buffer
section as well to allow messages to be buffered before being flushed to the output or
pipeline.
These components are considered to be the main components within Wombat as they provide the majority of useful behaviour.
Resource Components
Resource components like caches and rate limits are referenced and shared among the core components.
It’s also possible to configure inputs, outputs and processors as resources which allows them to be reused throughout a
configuration with the resource
input,
resource
output and resource
processor respectively.
Observability Components
Finally, there are the observability components http, logger, metrics, and tracing, which allows you to specify how Wombat exposes observability data:
More details on observability and monitoring can be found in the observability section.