mcpField
E
effect-concurrency-fibers

effect-concurrency-fibers

github.com/mepukaDevelopment540 installsUpdated 44w ago
Repository

About effect-concurrency-fibers

A skill for managing concurrency with Effect, including parallel work, fiber lifecycles, races, and timeouts. It is intended for developers building asynchronous Effect code and emphasizes bounded concurrency and checking local source before implementation.

Key features

  1. 01Run tasks with concurrency limits
  2. 02Fork, join, and interrupt fibers
  3. 03Race operations and set timeouts
  4. 04Search local Effect source and tests

Use cases

  1. 01Parallelize independent Effect operations
  2. 02Manage background fibers through shutdown
  3. 03Set latency bounds for competing operations

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/mepuka/effect-ontology --skill effect-concurrency-fibers

After installing, type/effect-concurrency-fibersin Claude Code to confirm it loaded.

Details

From the project README

Concurrency & Fibers

When to use

  • Parallelizing independent work safely with limits
  • Coordinating background tasks and lifecycle
  • Racing operations for latency control

Parallel Patterns

const results = yield* Effect.all(tasks, { concurrency: 10 })
const processed = yield* Effect.forEach(items, processItem, { concurrency: 5 })

Fiber Lifecycle

const fiber = yield* Effect.fork(work)
const value = yield* Fiber.join(fiber)
yield* Fiber.interrupt(fiber)

Racing / Timeouts

const fastest = yield* Effect.race(slow, fast)
const withTimeout = yield* Effect.timeout(operation, "5 seconds")

Guidance

  • Limit concurrency to protect resources
  • Use fork for background loops; always manage interruption
  • Prefer Effect.all for independent operations
  • Use Effect.forEach with concurrency for pools
  • Combine with retries and timeouts for resilient parallelism

Pitfalls

  • Unbounded concurrency can exhaust CPU/IO or hit rate limits
  • Always interrupt background fibers on shutdown
  • Don’t block inside fibers; keep work asynchronous/effectful

Cross-links

Local Source Reference

CRITICAL: Search local Effect source before implementing

The full Effect source code is available at docs/effect-source/. Always search the actual implementation before writing Effect code.

Key Source Files
  • Effect: docs/effect-source/effect/src/Effect.ts
  • Fiber: docs/effect-source/effect/src/Fiber.ts
  • Duration: docs/effect-source/effect/src/Duration.ts
Example Searches
# Find Effect.all and concurrency patterns
grep -F "Effect.all" docs/effect-source/effect/src/Effect.ts

# Find forEach with concurrency
grep -rF "forEach" docs/effect-source/effect/src/ | grep -F "concurrency"

# Study Fiber lifecycle operations
grep -F "export" docs/effect-source/effect/src/Fiber.ts | grep -E "fork|join|interrupt"

# Find race and timeout implementations
grep -F "race" docs/effect-source/effect/src/Effect.ts
grep -F "timeout" docs/effect-source/effect/src/Effect.ts
Workflow
  1. Identify the concurrency API you need (e.g., Effect.all, fork)
  2. Search docs/effect-source/effect/src/Effect.ts for the implementation
  3. Study the types and concurrency options
  4. Look at test files for usage examples
  5. Write your code based on real implementations

Real source code > documentation > assumptions

References

Comments

Markdown supported