# Contents

Prefect Improvement Notices are used to propose, discuss, accept, and memorialize any major architectural decisions for Prefect Core.

# PIN-1: Introduce Prefect Improvement Notices

Introducing PINs for recording Prefect decisions.

Status: Approved

# PIN-2: Implementation of Result Handlers and State Metadata

Adding metadata to States in order to track task results and serialization methods.

Status: Approved

# PIN-3: Agent-Environment Model for Flow Execution

A description of a more complex and executable Environment object.

Status: Approved

# PIN-4: Result Objects for Tracking and Serializing Task Outputs

A new Result object that clarifies the logic introduced by PIN-2.

Status: Approved

# PIN-5: Ability to Combine Tasks

A proposal for automatically combining tasks to ensure data locality; ultimately declined as a general approach.

Status: Declined

# PIN-6: Remove Constant Tasks

A proposal for removing auto-converting non-task objects into Constant Tasks; ultimately declined as the benefits outweigh the costs.

Status: Declined

# PIN-7: Storage and Execution

A proposal for refactoring environments into Storage classes and execution Environment classes with specific, loosely coupled interfaces.

Status: Approved

# PIN-8: Event-Driven / Listener Flows

A proposal for event-driven or long-running flows that run in response to events that arrive in an irregular stream.

Status: Proposed

# PIN-9: Prefect CLI

A proposal for a flexible and live-updating Prefect Cloud command line client.

Status: Approved

# PIN-10: Flexible Schedules

A proposal for a new way of building schedules that captures a wider variety of use cases.

Status: Proposed

# PIN-11: Single-Task Loops

A proposal for a way to loop over single tasks with arbitrary control logic and all Prefect semantics intact

Status: Proposed

# PIN 12: Environment Callbacks

A proposal to introduce user-provided callbacks for Environments which users can use to specify additional behavior before a Flow is run and after a FlowRun has ended.

Status: Accepted

# PIN 13: Universal Cloud Deploys

A proposal to run Flows from Prefect Cloud with local Python resources and packages.

Status: Accepted

# PIN-14: Event-Driven Flow Execution via Listeners

A proposal to enable starting a Flow based on events from user provided sources by leveraging the existing Schedule features.

Status: Proposed; supersedes PIN 8.

# PIN-15: Skip state as Finished + Control Flow Conditional

A proposal to interpret Skip states as Finished instead of Successful while also introducing more conditional control flow constructs.

Status: Proposed