etl4s

Tradeoffs

Reified pipelines

We have seen the powerful benefits of reifying our pipelines. Long-short, our programs become descriptions, that can have many interpretations and they become fully inspectable.

There are some costs:

Concurrency comes from the effect

Concurrency is a property of the interpreter, not of the operator. &>, *>, and eachPar(n) mark where work may run concurrently, but nothing runs in parallel under the default Id interpreter (unsafeRun): it is fully sequential, with no ExecutionContext involved.

Admittedly, this can be a bit surprising and counterintuitive but cannot be avoided without forcing a specific concurrency implementation on the programmer.