Composite Stages #12
Labels
No labels
agent
blocked
agent
new
agent
review
agent
working
complexity
high
complexity
low
priority
high
priority
low
priority
medium
risk
high
risk
low
risk
medium
type
bug
type
chore
type
feature
type
security
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
tfks/logbus#12
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
While stage templates help with boiler-plate of common stages, it doesn't help with common stage composition. One example is reading json from stdin. The stdin plugin emits chunks of text, so it needs a parse-lines stage between it and parse-json. Another example is that organizations will have a common set of transforms to apply to most all pipelines: normalize, sensitive data scrub, enrichment. Abstracting that into a single composite stage can make the pipeline easier to reason about but more importantly help avoid potential footguns.
The performance optimization should be a later phase: once composition semantics are stable, add optional transform-chain fusion for safe linear transform-only composites.
Key Changes
Extend external template files to support composite entries alongside existing single-stage templates.
Add a composite template shape:
Allow pipeline usage as one public stage:
During config expansion:
Keep runtime behavior unchanged in v1: each internal stage is still a normal source/transform/sink with normal stats, error routing, UI visibility, and backpressure.
Public Interface
Performance Follow-Up
Test Plan
Unit-test composite expansion:
Add an e2e pipeline proving the motivating case:
Run:
Assumptions