Claude-skill-registry effect-concurrency-fibers
Concurrency with Effect.all, forEach concurrency, Fiber lifecycle, race and timeouts. Use for parallelizing tasks safely.
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/effect-concurrency-fibers" ~/.claude/skills/majiayu000-claude-skill-registry-effect-concurrency-fibers-6f4cb6 && rm -rf "$T"
manifest:
skills/data/effect-concurrency-fibers/SKILL.mdsource content
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
for background loops; always manage interruptionfork - Prefer
for independent operationsEffect.all - Use
withEffect.forEach
for poolsconcurrency - 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
- Errors & Retries: backoff + jitter for transient failures
- Streams & Pipelines: concurrent map over streams
- EffectPatterns inspiration: https://github.com/PaulJPhilp/EffectPatterns
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
- Identify the concurrency API you need (e.g., Effect.all, fork)
- Search
for the implementationdocs/effect-source/effect/src/Effect.ts - Study the types and concurrency options
- Look at test files for usage examples
- Write your code based on real implementations
Real source code > documentation > assumptions
References
- Agent Skills overview: https://www.anthropic.com/news/skills
- Skills guide: https://docs.claude.com/en/docs/claude-code/skills