Declarative multi-stage data pipelines as a language construct. Each stage runs as a supervised BEAM process with configurable concurrency, retry, timeout, and backpressure. Like Elixir's GenStage/Flow but zero boilerplate.
pipeline OrderProcessor
stage :validate do |order|
Changeset.validate(order)
end
stage :charge, retry: 3, timeout: 5000 do |order|
PaymentService.charge(order)
end
stage :fulfill, concurrency: 5 do |order|
WarehouseService.ship(order)
end
stage :notify, async: true do |result|
Email.send(result.user, result)
end
end
# Start supervised pipeline
OrderProcessor.start()
OrderProcessor.push(order)
Summary
Declarative multi-stage data pipelines as a language construct. Each stage runs as a supervised BEAM process with configurable concurrency, retry, timeout, and backpressure. Like Elixir's GenStage/Flow but zero boilerplate.
Syntax
Design
agentkeyword — stateful actors as a language primitive #102) — stateful, supervised, hot-reloadableretry,timeout,concurrency(parallel workers per stage),asyncDependencies
agentkeyword — stateful actors as a language primitive #102 (agentkeyword) as foundationon/emitevent system — language-level pub/sub #103 (on/emitevents) for inter-stage communication patterns