Effect makes concurrency easy. It has baked in fibers/green threads (think goroutines/elixir processes) To even get somewhat close to this, w/o extra infra, you need a wildly-hard-to-get right mix of node streams, event emitters, setImmediate, and impl'ing AsyncIterableIterators
This Week in Effect - 2024-09-06
Hi Effecters!
Welcome back to This Week In Effect (TWIE) – your weekly update of the latest developments in the Effect community and ecosystem.
Effect is a powerful TypeScript library that helps developers create complex, synchronous, and asynchronous programs. One of the key features 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 as well as our guide for installing Effect. Enjoy!
Recent major updates:
- Effect is API stable with the Effect 3.0 release.
- Effect 3.7 has been released.
- The Effect community on Discord reached 3500+ members!
Here are all the technical changes that occurred last week.
- Support tacit usage of Effect.tapErrorTag and Effect.catchTag (Feature)
- Optimize Array.sortWith to avoid calling the map function excesively (Improvement)
- Fix(Stream): align .empty to behave like .make with no arguments (Bug Fix)
- Fix Micro.forEach for empty iterables (Bug Fix)
- Fix exported Stream types (Bug Fix)
- Remove console.log statements from Micro (Bug Fix)
- FiberRefs perf work (Improvement, next-minor)
- Add number round (Feature, next-minor)
- Add Logger.prettyLoggerDefault, to prevent duplicate pretty loggers (Feature, next-minor)
- Add number round (Feature, next-minor)
- FiberRefs perf work (Improvement, next-minor)
- Refactor /platform HttpClient (Refactor)
- Ensure Socket.toChannel fiber is attached to Scope (Bug Fix)
- Leave node stream listeners attached to prevent unhandled errors (Bug Fix)
- Add Logger.prettyLoggerDefault, to prevent duplicate pretty loggers (Feature, next-minor)
- Add onnotice option to PgClient (Feature)
- Condense schema README (Documentation Update)
- Add Zod link to schema README (Documentation Update)
- Infra: add python to dev shell
- Update docgen version
- Chore: migrate eslint to flat config
- Allow manual trigger of snapshots
In the last week, we welcomed 30+ new Effecters to our Discord community - we’re very excited to have you all on board!
- Warren Sadler, CTO & Co-Founder @ Therify, gave a talk about Functional Programming for Better TypeScript with EffectTS at the NashJS Meetup. You can find the full presentation at the link below:
- Dillon Mulroy, Software Engineer at Vercel, did three live streams about Building a Job Queue with EffectTS:
- Given his experience with Effect, Dillon also shared some feedback with the community about how Effect simplifies concurrency.
- Michael Arnaldi and Maxwell Brown were live on X(Twitter) and Twitch on Monday with the 5th episode of Effect Cluster - Design Sync Session.
Effect Cluster Design Sync x.com/i/broadcasts/1…
- The third episode of the series is available on the Effect YouTube Channel.
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