asynquence is a small, promise-like flow library for composing asynchronous steps into readable sequences. Instead of juggling nested callbacks, you create a chain of operations that pass values forward and route errors consistently. It supports concurrency control via “gates” and “races,” letting multiple tasks proceed and rejoin at the right moment without complex bookkeeping. The design emphasizes clarity and debuggability, keeping stack traces and error paths straightforward. Plugins expand the core with helpers for iteration, mapping, timeouts, and integration with event sources, so you can grow from simple sequences to richer workflows. Even though modern Promises and async/await exist, asynquence remains a compact, educational model for structuring async code with explicit, composable semantics.
Features
- Chainable sequences that pass results and route errors cleanly
- Concurrency primitives (gates, races) to coordinate multiple tasks
- Lightweight core with optional plugins for timers, mapping, iteration
- Clear error handling and cancellation patterns to avoid “dangling” work
- Works alongside callbacks, Promises, or generators where needed
- Tiny footprint aimed at readability and maintainability