Use casesData and engineering

ETL with an AI enrichment stage

Pipelines with |>, plus SQL and CSV in the box. The AI step is a stage, not a separate service.

The problem

Classic ETL extracts and loads fine until someone adds a column that only a model can fill: product description cleanup, address normalisation, entity resolution. The quick fix is a Lambda that calls OpenAI, which splits observability and types across two repos.

Why Ecko

Pipeline operator
|> chains pure functions and AI steps in one file. Read CSV, enrich, write SQL - one process, one log stream.
SQL and CSV stdlib
No JDBC driver archaeology for batch jobs. Connect, query, and map rows to structs.
Tracing across stages
JSONL traces cover both SQL pull and model enrich in one correlated run.

In practice

pipeline.ecko
rows
  |> read_csv("in.csv")
  |> pmap(enrich_row, workers=4)
  |> write_sql("staging.enriched")

Further reading

Try it on your workload.