THE SHORT ANSWER

Deferred work needs durable status and a retrievable outcome. Moving processing outside a request does not automatically solve duplicate execution, failure handling or permissions.

Model the lifecycle

For a fictional large-record export, distinguish queued, running, completed, failed and cancelled states. A customer who closes the browser should still find the job later. Avoid a precise progress percentage when the system cannot estimate remaining work reliably.

RiskDesign decision
RetryRecognise the same logical operation
Revoked accessRecheck permission when retrieving results
Stalled workerDetection window and alert owner
Expired fileExplain how to generate another copy
CancellationState which effects can still be stopped

Exercise interruption

Stop a test job after one processing stage, then resume it. Confirm that completed effects do not repeat. Bind the result to the correct organisation even if the initiating user switches workspaces before completion.

Is an email notification enough?

No. Notifications can be delayed or missed. Provide an authoritative status page or operation history. The message should direct the customer to that result rather than serve as the only proof of completion. Avoid permanent file access embedded in a notification when the content requires continuing permission checks.

Large customer jobs and shared capacity

Test whether one unusually large export delays ordinary jobs from other accounts. Define fairness and size limits according to the service promise. A successful large-job test is incomplete if it makes smaller customers' workflows effectively unavailable.

From this guide to your project

Development ↗

A SaaS is a system: data, users, permissions, billing and operations. Its architecture should support the business model.

Tell us about your idea

Examples are educational and do not describe client results. Content prepared with AI assistance; see our editorial policy. Our method ↗