Overview
Async code fails silently when errors are swallowed in unhandled promise rejections, when parallel operations are launched without a mechanism to wait for all of them, and when no timeout is applied to operations that depend on external services. A slow external API that never responds will hang the process indefinitely if no timeout is enforced. An unhandled promise rejection produces no error in some environments and a process crash in others.
The Async Code Patterns Framework implements the patterns that make async code reliable: propagating errors, bounding execution time, and executing parallel operations efficiently without race conditions.