I hadn’t heard of Redun, but it seems interesting from what I have read.
1. It seems Redun’s lazy expressions are… unused? Maybe I misunderstand lazy expressions, but in libraries like Polars they are used to perform optimizations in the actual execution. I haven’t dug into the codebase or more documentation, but they don’t mention optimizations in the section they discuss lazy evaluation.
2. Like Redun tasks, Prefect tasks do offer caching so repetitive inputs incur no cost or inefficiency.
3. Redun seems almost purely a DAG builder with a scheduler. Prefect is about orchestrating at a higher level. In my opinion, one of Prefect’s most important enticing components are the blocks.
4. Redun does allow recursive tasks, which is really nice for some tasks like paginated API calls. Prefect does not alllow this.
5. Redun seems to have some weird behaviors. Take
this section, where they won’t run a task because its result is not used downstream. I suppose this is the lazy evaluation in action? Seems unfortunate for some tasks though.
I’m going to cut it off here. I would still check out Redun just to know what it’s about (I certainly will be), but as far as orchestration tools go, Prefect offers so much more.