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

This Week in Effect - 141

Cluster idempotency in Module of the Week. A big push on EventLog and a native McpClient land in Effect v4. Effect Miami 🌴 speakers announced.

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, delving into Cluster idempotency.

Effect v4 updates.

A week of new modules and a big push on EventLog, alongside the ongoing stream of fixes across the codebase. Here are the most notable changes.

  • Additions: Added a native McpClient, effect/persistence/CircuitBreaker, Schema.toStandardJSONSchemaV1, a TextDiff module for minimal edit scripts and unified diffs, and Cloudflare AI Gateway support. Streaming encodings now include zip, XML and JsonArray for large JSON arrays, and Base64Url.encodePadded was added. Also added typed HTTP date and Retry-After header values to Headers, FileSystem.lstat, Flag.withNegation and Flag.withoutNegation, Command.validate for rules across CLI flags, a skipInitialRun option for seeded effect atoms, and deterministic concurrent property checking for tests.

  • EventLog: Entries are now encrypted in batches and get ids from a hybrid logical clock, with EventLog.writeMany and monotonic entry ids. Conflicts are ordered by entry id across journals and server, writes are acknowledged rather than echoed to the writer, and compaction can now drop entries only. SqlEventJournal gained upload checkpoints and secondary indexes, and remote replay was sped up with cached conflict payloads, indexed lookups and less per-entry overhead. Also fixed out-of-order unencrypted replication, duplicate encrypted SQL event broadcasts, and several IndexedDB journal and checkpoint issues.

  • Cluster & workflow: Fixed shard release stalling on a defect restart, ClusterCron initial scheduling recovery, duplicate workflow compensations after memory-engine replays, and interrupts being lost while a workflow run saves its Suspended reply. Stalled shard releases are now warned about repeatedly, with a new releasing-shards gauge and a shard release duration timer. Cluster storage reads also wake up when an entity registers.

  • HTTP, RPC & platform: Added opt-in request batching to the HTTP RPC client protocol, streaming request payload support to HttpApi, and HTTP/2 servers in NodeHttpServer. Forwarded headers now require a trusted proxy policy. Fixed HttpClient.followRedirects dying on an invalid Location header, basicAuth credentials not being encoded as UTF-8, multipart Content-Disposition filename decoding, and NodeHttpServer ending failed streamed responses as complete. On the runtime side, fixed Bun WebSocket interruption on close, Deno response failures and Socket.readerString corrupting characters split across frames.

  • SQL & AI: PgClient gained an onAcquire hook and an acquireTimeout, PostgreSQL server errors are preserved when the connection closes, and SqlClient callbacks now run after the outermost transaction commits. SQL PersistedQueue settlements are fenced by acquisition. On the AI side, added the OpenAI safety_identifier and prompt_cache_retention request options plus prompt cache breakpoints on image and file input, and fixed composed tool failure causes being lost and retry classification for provider response decoding failures.

  • Core, Schema & collections: The audit kept going with fixes for Cause.pretty on cyclic cause chains, Fiber.runIn and Effect.forkIn hanging, scoped forks running after scope closure, Effect.repeat turning a Done failure into a success, and Stream.retry slowing down on every retry. Defects now take precedence over typed failures in more recovery operators. Schema fixes cover Schema.Tuple encoding with omitted optional elements, Unicode casing checks, Schema.toFormatter and Schema.toTaggedUnion. Layers are now memoized by identity, and finite number and base64 validation run in linear time.

  • Config, CLI & parsers: Fixed YAML block scalars with tabs, Ini.parse dropping a trailing backslash, TOML empty quoted keys, Config.schema dropping record keys for non-string key schemas, OTEL_RESOURCE_ATTRIBUTES values containing =, and several CLI lexer edge cases with clustered short options. Also fixed DateTime.formatIsoDate for extended years, zoneFromString rejecting GMT, and nanosecond precision in Duration strings and inputs.

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.


Other technical updates from the past week.

Effect Core

Effect AI

Effect Cluster

Effect OpenAPI

Effect Opentelemetry

Effect Platform

Effect SQL

Community Events

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

Community Highlights

Effect Adoption Partner

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

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.

New this week: Bitfocus & Warp are hiring Effect engineers.

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.

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 51 🔥
Play
  • Native Arbitraries, Schema Binary, and PostgreSQL | Office Hours 43
Play

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.