Skip to content
Effect 4.0 is here. One ecosystem. Zero dependencies.

This Week in Effect - 139

Cluster messaging in Module of the Week. Released Effect 4.0.1 and 4.0.2.

Hi Effecters!

Welcome back to This Week in Effect, your weekly update of the latest developments in the Effect community and ecosystem.

Effect is the TypeScript library for the AI era, helping developers build complex, synchronous, and asynchronous programs. One key feature that sets Effect apart is how it leverages structured concurrency to provide features such as async cancellation and safe resource management, making it easier to build robust, scalable, and efficient programs.

To get started, below you’ll find links to our documentation and our guide for installing Effect. Enjoy!

Recent major updates:

Technology

New Module of the Week post by Maxwell Brown, diving into Cluster messaging.

Effect v4 updates.

It has been a week since Effect 4.0 shipped, and the pace has not slowed. According to Sebastian’s post on the first week, almost 30 contributors landed around 150 commits on main, and two patch releases went out: 4.0.1 on October 5 and 4.0.2 on October 8. Here are the most notable changes.

  • Stability tags: Every module and importable export now declares its @stability level explicitly, enforced by automated checks in the pipeline. 4.0.2 also adds the tags that were missing from some modules intended to ship as unstable. Nothing changes in your code: no behavior, signatures or types are affected. The Effect language service builds on these tags to warn you when you use unstable or experimental APIs. Sebastian’s post has the full story.

  • OpenTelemetry alignment: Aligned HTTP, SQL and AI spans with the OpenTelemetry semantic conventions, and brought the OTLP exporter, resource and logger in line with the OpenTelemetry spec. Also preserved active OpenTelemetry parents for Effect spans, left interrupted spans unset, and fixed B3 sampling and zero W3C IDs in HTTP trace context.

  • Additions: Added a DatagramSocket (UDP) module, PowerShell support for --completions, a delay option on PersistedQueue.offer, a deterministic TestCrypto layer, a noFollow open option and positional reads for FileSystem, compact JSON and inspect output for SchemaError, and more atom registry APIs.

  • Cluster & workflow: Fixed orphaned workflow activity recovery after a crash, fixed entity recovery when replayed requests defect during handler rebuild, and avoided workflow replay for self-completed checkpoints. WithTransaction replies are now delivered once the transaction outcome is known, with failure replies persisted after rollback. Cluster SQL storage can now run without runtime DDL, and HashRing.getShards no longer depends on node history.

  • HTTP, MCP & OpenAPI: Preserved query strings during router slash normalization, fixed HttpApi form and GET payloads rejecting single-value arrays, fixed HttpStaticServer If-Range validation, and fixed OpenAPI client response inference. On the MCP side, interrupted reverse requests now send cancellation notifications, cancelled HTTP request POSTs get an empty event stream, and stateful extension capabilities are preserved.

  • Streams, SQL & AI: Fixed Stream.slidingSize dropping elements from the final partial window, Stream.throttle exceeding its configured rate, and several tapSink edge cases. Fixed typed SQL transaction COMMIT error recovery and MSSQL pool recovery. Fixed Anthropic streamed tool JSON errors, and cached per-tool response schemas for better AI performance.

  • Continued audit: The correctness audit carried on after the release, with targeted fixes across STM transactions, PubSub, Queue, Pool, Channel, ScopedCache, Layer, ManagedRuntime and Schema union parsing, covering edge cases around interruption, shutdown, retries and resource cleanup.

  • Config, Schema & docs: Kept = inside values when decoding key-value config strings, canonicalized imported JSON Schema pattern sources, and fixed zoned DateTime when Intl omits fractional seconds. Migration guidance now notes the v4 decoding change in NumberFromString and points parseJson users to fromJsonString(Schema.Unknown).

You can follow the full changelog in the effect repository.

To catch up on more updates, check out Effect v4 Updates, starting from the recently published Effect v4 RC: September 2026 Updates.

Community Events

Visit our Effect Community Events calendar and subscribe for updates on upcoming Effect events.

Effect Adoption Partner

We’re thrilled to announce Ziverge as the first Effect Adoption Partner!

Community Highlights

  • Effect 4.0 Just Got a Lot Harder to Ignore by Better Stack.
Play
  • Alchemy 🤍 Effect

New alchemy is on Effect 4.0 stable and has too many awesome changes to fit into a single tweet. My favorite this time round is that @neondatabase is no longer just a database company. It might be time to update their twitter handle 😅

alchemy
alchemy
@alchemy_run

alchemy@2.0.0-beta.80 brings a ton of new stuff, including broad GCP coverage, Neon becomes more than a Database, pluggable secret providers, Prisma ORM, better scheduling primitives for Durable Objects and much more. alchemy.run/blog/2026-09-2…

  • Effect agent frameworks:

we dont do a good job of talking about it but @0xblacklight built a dope effectTS agent harness that 1) stores state as a portable append only log 2) runs on durable objects out of the box 3) has cool retro opentui UI with 10 themes

Gareth Andrew
Gareth Andrew
@gingerhendrixai

three Effect agent frameworks worth checking out: - Fold by @0xblacklight - Yielded Agent by @danieljvdm - Tardigrade by @arjunkmrm particularly interesting to see they all support cloudflare durable objects as host and worth asking an agent to talk you through their

  • 👀
  • Congrats, Tanner and the Vitalize team!
  • 💯
  • Effect is obviously the solution 😎

Effect is obviously the solution and i know literally no one likes writing `yield *` but it is 2026 and you don’t have to write it yourself

Ryan Dahl
Ryan Dahl
@rough__sea

rust never was the defacto language for agents and will not be. i love rust - it’s my primary language - but i work on runtimes and platforms application code belongs in the default language - JavaScript (or its extension TS)

  • Effect mentioned at 36:18.
Play

Cause & Effect Podcast

Don’t forget to listen to our Cause & Effect podcast hosted by Johannes Schickling and available on YouTube, X(Twitter), and audio platforms like Spotify and Apple Podcast.

John A. De Goes, the creator of ZIO, as well as CEO of Ziverge and Golem Cloud, joins Johannes Schickling and Michael Arnaldi to discuss how AI is reshaping software engineering, what developers should still learn, and why Effect’s primitives are especially valuable for coding agents.

Play

Effect Team Content Update

  • Effect Office Hours 49 🔥
Play
  • Local Telemetry, Grafana LGTM, Motel, and Effect v4 Tracing
Play
  • Effect Cluster, Part 1 | Module of the Week #3
Play
  • Effect Cluster, Part 2 | Module of the Week #4
Play

Effect Job Opportunities

Looking for a role where you can work with Effect? We now have a dedicated Effect jobs page featuring open roles from companies that use Effect. We’ll keep it updated as new opportunities come in.

Explore Effect job opportunities →

Disclaimer: Please note that these job postings are shared for informational purposes, and we encourage applicants to verify details directly with the hiring companies.

Effect Merch Store

The Effect Merch Store offers a selection of Effect-branded items designed for the community. All orders are processed and fully managed through Printful.

Closing Notes

That’s all for this week. Thank you for being a vital part of our community. Your feedback is highly valued as we fine-tune this format. Feel free to share your thoughts, and we’ll do our best to tailor it to the needs of our community.

Effect Community Team

Share

Last updated

// Effect Community

Join the conversation on Discord

Meet engineers running Effect in production.