Learn Apex
Chaining Queueables
From one execute method, call System.enqueueJob again to pass work to the next async step — useful for long pipelines without hitting synchronous limits.
Chain

Step through a chain (toy)

Job A

waiting

Job B

waiting

Idle — first job not enqueued

Chain pattern
public class JobA implements Queueable {
    public void execute(QueueableContext ctx) {
        // work...
        System.enqueueJob(new JobB());
    }
}
public class JobB implements Queueable {
    public void execute(QueueableContext ctx) {
        // next step
    }
}

Chaining is powerful — monitor depth, errors, and idempotency so a retry does not duplicate side effects.