| Crates.io | conveyor-etl-sidecar |
| lib.rs | conveyor-etl-sidecar |
| version | 0.1.0 |
| created_at | 2025-12-23 02:59:56.848469+00 |
| updated_at | 2025-12-23 02:59:56.848469+00 |
| description | Conveyor ETL sidecar for local and cross-pod data routing |
| homepage | |
| repository | |
| max_upload_size | |
| id | 2000675 |
| size | 125,551 |
Sidecar binary for pod-level data routing.
The sidecar runs alongside application containers in each pod. It discovers local gRPC services, registers with the router cluster, receives pipeline assignments, and routes records between stages.
cargo run -p conveyor-sidecar
Or with explicit configuration:
CLUSTER_ENDPOINT=conveyor-router:50051 \
SIDECAR_ID=sidecar-pod-abc \
POD_NAME=my-pod \
NAMESPACE=default \
GRPC_PORT=9091 \
cargo run -p conveyor-sidecar
| Variable | Description | Default |
|---|---|---|
SIDECAR_ID |
Unique sidecar identifier | Auto-generated UUID |
POD_NAME |
Kubernetes pod name | unknown |
NAMESPACE |
Kubernetes namespace | default |
CLUSTER_ENDPOINT |
Router cluster address | localhost:50051 |
GRPC_PORT |
Sidecar gRPC server port | 9091 |
DISCOVERY_START_PORT |
Start of port scan range | 50051 |
DISCOVERY_END_PORT |
End of port scan range | 50060 |
HEARTBEAT_INTERVAL_SECS |
Heartbeat frequency | 5 |
┌─────────────────────────────────────────────────────┐
│ Pod │
├─────────────────────────────────────────────────────┤
│ ┌──────────────────────────────────────────────┐ │
│ │ conveyor-sidecar │ │
│ │ ┌───────────┐ ┌───────────┐ ┌─────────┐ │ │
│ │ │ Discovery │ │ Cluster │ │ Data │ │ │
│ │ │ Module │ │ Client │ │ Plane │ │ │
│ │ └─────┬─────┘ └─────┬─────┘ └────┬────┘ │ │
│ │ │ │ │ │ │
│ │ │ ┌───────▼───────┐ │ │ │
│ │ │ │ Routing Table │ │ │ │
│ │ │ └───────┬───────┘ │ │ │
│ │ │ │ │ │ │
│ │ ┌─────▼──────────────▼──────────────▼─────┐ │ │
│ │ │ Local / Remote Router │ │ │
│ │ └─────────────────────────────────────────┘ │ │
│ └──────────────────────────────────────────────┘ │
│ │ │
│ ┌─────────────────────▼───────────────────────┐ │
│ │ Local gRPC Services │ │
│ │ (Source, Transform, Sink on localhost) │ │
│ └─────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────┘
discoveryScans localhost ports and uses gRPC reflection to identify services (Source, Transform, Sink).
cluster_clientroutingdata_planegRPC server that receives records from sources and other sidecars.
containers:
- name: my-transform
image: my-transform:latest
ports:
- containerPort: 50051
- name: sidecar
image: conveyor-sidecar:latest
env:
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: CLUSTER_ENDPOINT
value: "conveyor-router:50051"