Stream creation, transformation, sinks, batching, and resilience. Use when building data pipelines with concurrency and backpressure.
Scanned 2/12/2026
Install to Claude Code
npx -y skills add majiayu000/claude-skill-registry --skill effect-streams-pipelines-mepuka-adjunct --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Effect Streams Pipelines Mepuka Adjunct?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/majiayu000-effect-streams-pipelines-mepuka-adjunct)More formats (shields.io, HTML) on the badges page.
---
name: effect-streams-pipelines
description: Stream creation, transformation, sinks, batching, and resilience. Use when building data pipelines with concurrency and backpressure.
allowed-tools: Read, Grep, Glob, Edit, Write, mcp__effect-docs__effect_docs_search
---
# Streams & Pipelines
## When to use
- You’re building data pipelines with batching/backpressure
- You need controlled concurrency per element
- You must process large inputs with constant memory
## Create
```ts
const s = Stream.fromIterable(items)
```
## Transform
```ts
const out = s.pipe(
Stream.mapEffect(processItem, { concurrency: 4 }),
Stream.filter((a) => a.valid),
Stream.grouped(100)
)
```
## Consume
```ts
yield* Stream.runDrain(out)
// or
const all = yield* Stream.runCollect(out)
```
## Resource-Safe
```ts
const fileLines = Stream.acquireRelease(open(), close).pipe(
Stream.flatMap(readLines)
)
```
## Resilience
```ts
const resilient = s.pipe(
Stream.mapEffect((x) => op(x).pipe(Effect.retry(retry)))
)
```
## Real-world snippet: Stream to S3 with progress and scoped background ticker
```ts
let downloadedBytes = 0
yield* Effect.gen(function* () {
// background progress ticker
yield* Effect.repeat(
Effect.gen(function* () {
const bytes = yield* Effect.succeed(downloadedBytes)
yield* Effect.log(`Downloaded ${bytes}/${contentLength} bytes`)
}),
Schedule.forever.pipe(Schedule.delayed(() => "2 seconds"))
).pipe(Effect.delay("100 millis"), Effect.forkScoped)
yield* s3.putObject(key,
resp.stream.pipe(
Stream.tap((chunk) => { downloadedBytes += chunk.length; return Effect.void })
),
{ contentLength }
)
}).pipe(Effect.scoped)
```
## Guidance
- Prefer `Stream.mapEffect` with `concurrency` to control parallel work
- Use `grouped(n)` for batching network/DB operations
- Always model resource acquisition with `acquireRelease`
## Pitfalls
- Collecting massive streams into memory → prefer `runDrain` or chunked writes
- Doing blocking IO in transformations → keep operations effectful and non-blocking
## Cross-links
- Concurrency: pools and timeouts for per-item work
- Resources: scope/finalizers for pipeline resources
- 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
- Stream: `docs/effect-source/effect/src/Stream.ts`
- Sink: `docs/effect-source/effect/src/Sink.ts`
- Channel: `docs/effect-source/effect/src/Channel.ts`
### Example Searches
```bash
# Find Stream creation patterns
grep -F "fromIterable" docs/effect-source/effect/src/Stream.ts
grep -F "make" docs/effect-source/effect/src/Stream.ts
grep -F "fromEffect" docs/effect-source/effect/src/Stream.ts
# Study Stream transformations
grep -F "mapEffect" docs/effect-source/effect/src/Stream.ts
grep -F "filter" docs/effect-source/effect/src/Stream.ts
grep -F "grouped" docs/effect-source/effect/src/Stream.ts
# Find Stream consumption
grep -F "runDrain" docs/effect-source/effect/src/Stream.ts
grep -F "runCollect" docs/effect-source/effect/src/Stream.ts
# Look at Stream test examples
grep -F "Stream." docs/effect-source/effect/test/Stream.test.ts
```
### Workflow
1. Identify the Stream API you need (e.g., mapEffect, grouped)
2. Search `docs/effect-source/effect/src/Stream.ts` for the implementation
3. Study the types and pipeline patterns
4. Look at test files for usage examples
5. 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
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!