Our latest release introduces improved concurrency handling, flow run graph enhancements, and result artifacts, elevating the Prefect experience. We’ve made major improvements to the Prefect engine, supporting mixed asynchronous and synchronous code, closing long-standing bugs, and ensuring reliability when running flows.
Key concurrency and engine reliability enhancements
- Dedicated worker thread for flow and task orchestration.
- Synchronous flows run on main thread, resolving issues like #5991.
- Asynchronous flows have separate event loop from Prefect engine.
- Flow timeouts enforced with signals for effective interruption of long-running calls.
- Async flows callable from sync flows; async tasks usable as upstream dependencies for sync tasks.
- Deadlocks prevented when waiting for many sleeping tasks or having large numbers of synchronous tasks.
- Debug mode enables verbose logging from Prefect concurrency internals.
- API limits to 100 concurrent requests with SQLite backend to avoid database contention.
- Task input resolution no longer uses worker threads, preventing deadlocks with numerous upstream inputs.
Results tab on flow run pages
The Prefect UI now renders information about your flow run and task run results!
This view provides a visual representation of the output of your tasks and flows and, when possible, provides links to results persisted using any of our storage blocks. To see this in your UI, run any flow and navigate to the run page; from there you’ll see a new tab, “Results”:
Flow run graph
We heard that people loved the simplicity and sleekness of the timeline on the flow run page, but valued the radar graph’s ability to traverse between flow runs and subflows runs. This release introduces the ability to expand and collapse subflow runs within the timeline. With these enhancements, the flow run timeline has now evolved into a general purpose flow run graph, with the ability to render thousands of nodes and edges performantly. The radar graph has been retired. You can now observe and explore your flow runs even more quickly and easily in a single flow run graph!
Other Notable Changes
- Reverse option for flow run logs CLI (#8625).
- Full run history in UI (#8885).
- Improved SQLite sync mode performance (#8071).
- Support for variadic keyword arguments in Task.map (#8188).
- Add deployment.name and deployment.version to prefect.runtime (#8864).
- Resolved issues with race conditions (#8886), configuration (#8872), and recursion limits (#8827).
- Fixed state message display in flow run metadata panel (#8885).
- Fixed prefect dev start failure (#8850).
- Resolved image pull errors with certain cloud providers by changing Docker build configuration(#8889).
For additional information, view the complete release notes.