
Future methods have a shelf life. Queueable Apex replaced them for most use cases -- and once you understand chaining, job IDs, and the Finalizer interface, you'll wonder why you ever used @future at all. This is the practical guide.
Apex Deep Dive
From triggers to async patterns -- the full Apex toolkit.