This Week in Effect - 2024-05-24
Hi Effecters!
Welcome back to This Week In Effect (TWIE), a weekly update to keep you in the loop with all the latest developments in the Effect community and ecosystem.
Effect is a powerful TypeScript library designed to help 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 with Effect, explore our quick-start guide and documentation below.
We want to make it easy for you to find everything you need to fully enjoy your Effect journey and actively engage with the community! Here, you'll find all the significant developments from the previous week, including community activities such as Discord discussions, noteworthy posts, YouTube content, and technical advancements.
Recent major updates
- Effect became API stable with the Effect 3.0 release.
- Effect 3.2 has been released.
- Our community on Discord reached 2850+ members!
- We're publishing new Effect Days talks every week on the Effect YouTube channel.
Technology
Here are all the technical changes that occurred last week (note that changes included in the 3.2 release will not be listed).
Effect Core
- fix for Infinity delays in Schedule (Bug Fix)
- Release queue: minor (Improvement)
- Fix Config.Wrap for optional properties (Bug Fix)
- Prohibit name clashes in Effect.Tag (Feature)
- Avoid eager read of the stack when captured by a span (Bug Fix)
- Improve internalization of functions to clean stack traces (Improvement)
- Ensure effect_internal_* function names are preserved with esm (Bug Fix)
- Fix internal cutpoint name preservation (Bug Fix)
- Array: fix flatMapNullable implementation and add descriptions / examples (Bug Fix, Documentation Update)
- Array: simplify signatures ReadonlyArray (Refactor)
- Add dtslint tests for separate, getRights, getLefts, getSomes (Feature)
- Attach Stream.toReadableStream fibers to scope (Bug Fix)
- add Layer.annotateLogs & Layer.annotateSpans (Feature, next-minor)
Effect Platform
- Release queue: minor (Improvement)
- Update the definition of Handler to utilize App.Default (Refactor)
- Add Getting Started docs for HTTP Server (Documentation Update)
- Wait for callback in node http server responses (Bug Fix)
- Update dependencies (Improvement)
- Platform: add "Applying Middleware in Your Application" section (Documentation Update)
- Make Array.separate, Array.getRights, Array.getLefts, Array.getSomes heterogeneous (Feature)
- Remove pool resizing in platform workers to enable concurrent access (Bug Fix)
Effect RPC
- Release queue: minor (Improvement)
Effect Experimental
- Release queue: minor (Improvement)
- Update dependencies (Improvement)
Effect Vitest
- Release queue: minor (Improvement)
Effect Opentelemetery
- Release queue: minor (Improvement)
Effect SQL
- Release queue: minor (Improvement)
- Replace Postgres.js parsed options in PgClient.config (Bug Fix)
- Update dependencies (Improvement)
- Add sql.reactive api to /sql-sqlite-react-native (Feature)
- Allow additional span attributes to be passed to sql clients (Bug Fix)
Effect Schema
- Added a note about the usage of attachPropertySignature (Documentation Update)
- Schema: add recap section to README.md (Documentation Update)
- Add onNoneEncoding to schema.optional (Feature)
- Change trimmed json-schema pattern (Bug Fix)
- Add test for Trimmed pattern (Improvement)
- Add documentation for Schema.OptionFromUndefinedOr (Documentation Update)
- Add note about Schema.Struct (Documentation Update)
- Add optional and optionalWithOptions API interfaces (Feature)
- Update dependencies (Improvement)
- Add support for Enums in Record (Feature)
- Add support for Config module (Feature)
- Schema: add Config documentation (Documentation Update)
- Schema: readme: add warning on Secret schema composition (Documentation Update)
General Chore
Community highlights
In the last week, we welcomed +50 new Effecters to our Discord server! Thank you all for joining the Effect community, we're excited to have you on board!
Effect has been nominated for The Most Exciting Use of Technology in the JavaScript Open Source Awards, part of JS Nation. The winners will be announced at the JS Nation Conference on June 13 in Amsterdam. You can vote for Effect ✅ until May 30!
The Evryg team has announced the date of the second Effect Paris Meetup: Tuesday, June 25th at 7:00 PM. Now accepting talk submissions—submit yours today! As a reminder, the meetup will be in French.
Stephen Bluck, a long-time Effect community member, recently made public his project about integrating Remix with Effect.
Dillon Mulroy, Software Engineer @ Vercel, shared an update on his work about building a Spotify Twitch integration with Effect. Check out the tweet below for more details:
Michael Arnaldi, author of Effect, will join Nick Taylor on the nickyt.live podcast on Monday, May 27th at 5 pm UTC to give an introduction about Effect.
Content update
On Monday, we released a new talk from the Effect Days Conference, 'Durable Workflows with Effect Cluster' by Mattia Manzati. In this talk, Mattia delves into the concept of durable workflows using Effect Cluster, which helps handle failures and retries in distributed systems, and provides building blocks for handling activities and workflows. Watch Mattia's full presentation below:
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
Related Posts
This Week in Effect - 2024-05-17
May. 17th, 2024
By Davide Scognamiglio, Mirela Prifti, Michael Arnaldi
Technical updates in Effect. 'Effective State Machines for Complex Logic' by David Khourshid. 'Integrating Effect with Remix' Ep.1 by Michael Arnaldi
Read more
This Week in Effect - 2024-05-31
May. 31st, 2024
By Davide Scognamiglio, Mirela Prifti, Michael Arnaldi
Technical updates in Effect. 'Next level type safety with Effect' by Aleksandra Sikora. 'Effect Cluster Integration with Effect RPC' Ep.2 by Mattia Manzati.
Read more