Components
Components are the building blocks of pipelines. Expanso includes 200+ components for connecting to any system.
Component Types
Inputs
Sources where data enters the pipeline.
Categories:
- Messaging: Kafka, NATS, RabbitMQ, MQTT
- Databases: PostgreSQL, MySQL, MongoDB
- Files: Local files, S3, SFTP, Azure Blob
- HTTP: Webhooks, REST APIs
- Streams: TCP, UDP, WebSocket
- Special: Generate (testing), Stdin
Example:
input:
kafka:
addresses: ["localhost:9092"]
topics: ["events"]
consumer_group: "my-app"
Processors
Transform, filter, and enrich data as it flows through.
Categories:
- Transformation: Mapping (Bloblang), JQ, JavaScript
- Parsing: JSON, CSV, XML, Avro, Protobuf, Grok
- Filtering: Conditional routing, deduplication
- Enrichment: HTTP requests, cache lookups, SQL queries
- Aggregation: Batching, windowing, grouping
Example:
pipeline:
processors:
- mapping: |
root.user = this.userId
root.timestamp = now()
root.message = this.msg.uppercase()
Outputs
Destinations where processed data is sent.
Categories:
- Messaging: Kafka, NATS, RabbitMQ, MQTT
- Databases: PostgreSQL, MySQL, MongoDB, Elasticsearch
- Storage: S3, GCS, Azure Blob, local files
- HTTP: REST APIs, webhooks
- Observability: Datadog, Prometheus, StatsD
- Special: Stdout (debugging), Drop (discard)
Example:
output:
s3:
bucket: processed-data
path: "year=${!timestamp_year()}/data.json"
region: us-east-1
Using Components
Basic Usage
- Choose a component from the catalog
- Configure it using YAML
- Add to pipeline in the appropriate section
Configuration
Each component has:
- Required fields: Must be specified
- Optional fields: Have sensible defaults
- Advanced options: For fine-tuning
Finding Components
By category:
- Visit /components/inputs
- Visit /components/processors
- Visit /components/outputs
By search:
- Use the component catalog search
- Filter by type, status, difficulty
Component Features
Batching
Many components support batching for efficiency:
output:
s3:
bucket: logs
batching:
count: 100
period: 10s
Error Handling
Handle failures gracefully:
output:
kafka:
addresses: ["localhost:9092"]
retry:
max_retries: 3
backoff:
initial_interval: 1s
Metrics
All components export metrics:
- Throughput (messages/sec, bytes/sec)
- Latency
- Errors
- Success/failure counts
What's Next?
👉 Browse Components - Explore all 200+ components
👉 Edge Processing - Learn about edge benefits
👉 Examples - See real pipeline examples