Effection Logo

Blog

Tutorials, announcements, and insights about structured concurrency

Latest

Effection Blog Missing Guarantees in k6's JS Runtime k6 Today group("coolgroup") tags.group=coolgroup c.add(1) delay() future tick tags.group= then: c.add(1) Async deforms the call stack. Next tick runs with different tags. @effectionx/k6 group("coolgroup") tags.group=coolgroup c.add(1) delay() future tick then: c.add(1) Next tick keeps the same tags.
New

The missing structured concurrency guarantees in k6's JavaScript runtime

Why groups/tags, errors, and cleanup drift across async boundaries in k6 scripts, and how @effectionx/k6 demonstrates a structured fix.

Taras Mankovski's profile

Taras Mankovski

February 15, 2026

All Posts

Effection Blog Why JavaScript Needs Structured Concurrency Scope owns lifetime. Cleanup is guaranteed. Promises async fn() fetch() setTimeout() server.listen() ● still pending ● still ticking ● port still bound finally {} ? Effection function*() function*() spawned task fetch() setTimeout() server.listen() scope ends ✓ halted + cleaned up Async should just feel normal.

Why JavaScript Needs Structured Concurrency

Structured programming tamed the chaos of early computing. Structured concurrency does the same for async — and Effection brings it to JavaScript.

Taras Mankovski's profile

Taras Mankovski

February 6, 2026

Effection

Welcome to the Effection Blog

Introducing the new Effection blog - your source for tutorials, release announcements, and insights about structured concurrency in JavaScript.

Taras Mankovski's profile

Taras Mankovski

February 2, 2025