The Golden Rule
Compose layers first, then provide once. Don’t chain multipleEffect.provide calls.
Why Layer Composition Matters
- Efficiency - Layers built together share resources
- Correctness - Dependencies resolved properly
- Testability - Swap entire layer graphs for testing
- Reusability - Define layers once, use everywhere
Composition Patterns
Pattern 1: Layer.mergeAll for Independent Layers
When layers don’t depend on each other:
Pattern 2: Layer.provide for Dependencies
When one layer depends on another:
Pattern 3: Layer.provideMerge for Incremental Building
Add services while providing dependencies:
Complete Examples
Read-Only Provider
Full Wallet with Signing
Test Layer Substitution
Layer Reuse Across Files
Define layers in a shared module:Common Mistakes
Mistake 1: Providing Same Dependency Multiple Times
Mistake 2: Order-Dependent Provides
See Also
- Layers Overview — Schema, Effect, and Service layers
- Effect Primer — 5-minute Effect.ts intro
- Dependency Injection — How services work
- Testing — Using test layers

