Parquex uses three small design boundaries:

  • Storage owns local and S3-compatible namespaces and relative keys.
  • Streaming moves bounded columnar batches between Parquet and Elixir.
  • Native lifecycle owns scheduling, cancellation, and error containment.

The public flow is:

Store + key -> Parquet file
Store + prefix + time partition -> Parquet dataset