The Practical Arc
Eight questions, in order.
From a plain async operation to a resilient Effect pipeline. Every module answers one foundational question about work, outcomes (A), failures (E), dependencies (R), lifetimes, and concurrency.
Channel A: Work, Sequencing, and Outcomes
Separate describing work from running it, sequence dependent steps, and keep failure meanings intact.01Work model / labDescribe before executionSeparate the operation you can compose from the moment it starts.02Composition model / labSequence operationsUse one Effect result as the input to the next operation without starting either step during assembly.03Failure model / labFailures with meaningMake empty results, bad requests, and provider outages distinct outcomes in the type system.
Channels E & R: Dependencies and Execution Policies
Name what the operation needs via Context, enforce selective retry schedules, and guarantee resource cleanup.04Dependency model / labReplaceable dependenciesMake the operation declare what it needs and let production or tests provide the implementation.05Lifetime policy / labOwnership and cleanupTie cleanup to the lifetime of the operation so failure cannot leave downstream workers deadlocked.06Time policy / labSelective retriesAttach a bounded time policy to the one failure that can actually recover.