What are unstable modules?
Theeffect/unstable namespace contains experimental features and APIs that are actively being developed and refined. These modules provide access to powerful capabilities that may undergo breaking changes as the Effect team gathers feedback and iterates on the design.
Why use unstable modules?
Unstable modules give you early access to:- New features before they stabilize
- Cutting-edge functionality for modern application patterns
- Powerful abstractions that are being refined based on community feedback
Available modules
HTTP Client
Make HTTP requests with retries, timeouts, and request transformation
HTTP Server
Build HTTP servers with routing and middleware
HTTP API
Create schema-first, type-safe APIs with automatic validation
CLI
Build command-line applications with typed arguments and flags
Process
Manage child processes and command pipelines
AI
Work with language models and AI providers
Cluster
Build distributed applications with entities
RPC
Define type-safe remote procedure calls
Workflow
Orchestrate durable, long-running workflows
Observability
Export telemetry with OTLP and Prometheus
Persistence
Work with key-value stores, caches, and queues
Socket
Handle WebSocket and stream-based connections
Workers
Spawn and communicate with web workers
Import paths
Unstable modules use theeffect/unstable import path:
Stability considerations
Migration to stable
As unstable modules mature, they may:- Graduate to the main Effect package
- Move to dedicated packages (like
@effect/platform) - Undergo final API refinements before stabilization