Great read! You mentioned switching to Polars' lazy API to manage memory. Did you find that the lazy evaluation model required you to significantly change how you structured your pipeline's logic, or was it a relatively straightforward translation from your initial approach?