Johannes Schickling, founder of Prisma, discusses the Effect library for building robust apps in TypeScript. Topics include observability, composable software development, and integrating effects with state management in React.
Convex emphasizes clean abstractions and deterministic execution for building scalable applications.
Effect is a TypeScript development platform that provides a standard library for building robust apps, offering simple and composable solutions.
Deep dives
The Zen of Convex and Building Applications
The speaker discusses the Zen of Convex, which is about building applications in a way that scales over time. The Zen emphasizes clean abstractions, composability, and deterministic execution. Convex incorporates transactional thinking, influence by languages like Haskell, where everything is seen as a transaction. The speaker highlights the importance of building applications in a way that pays dividends in the long run and encourages developers to consider the Zen of Convex when working with the platform.
Effect: A TypeScript Development Platform
Effect is a TypeScript development platform that aims to provide a standard library for building robust and scalable apps. It offers a set of abstractions and primitives to handle common challenges in JavaScript, such as error handling, concurrency, and serialization of data. Effect aims to make doing the right thing easy, even in complex scenarios, by providing simple and composable solutions. The platform also offers observability features for debugging and performance analysis. With a focus on TypeScript backend development, Effect aims to eliminate the need for multiple libraries by providing a unified toolkit.
Adopting Effect and Incremental Adoption
Effect can be adopted incrementally into existing projects based on specific pain points or needs. Developers can refactor individual functions or features to use Effect, improving error handling or adding observability. Adoption can start with a single leaf in the application's call tree and gradually expand to other parts of the codebase. Effect can coexist with other libraries and frameworks, such as XState, which focuses on state machines. The learning curve for adopting Effect can be overcome by exploring the available resources, including the Effect website, community Discord, and upcoming Effect conference.
Effect and the Benefits of Observability
Effect provides observability capabilities through its integration with open telemetry. Observability helps developers gain insights into application execution by generating traces and spans, enabling performance analysis, error detection, and debugging. Observability is often an overlooked aspect in web development, and Effect aims to fill this gap in the JavaScript ecosystem. The speaker emphasizes that observability facilitates building fast and efficient applications by enabling developers to identify and address performance bottlenecks and detect errors more effectively.
Prisma founder Johannes Schickling has been using the Effect library for the last couple years. Today he joins Jerod & Nick to tell us all about this very interesting tool for building robust apps in TypeScript.
Changelog++ members save 5 minutes on this episode because they made the ads disappear. Join today!
Sponsors:
Convex – Convex is a better type of backend — the full-stack TypeScript development platform that lets you replace your database, server functions, and glue code. Get started at convex.dev
Fastly – Our bandwidth partner. Fastly powers fast, secure, and scalable digital experiences. Move beyond your content delivery network to their powerful edge cloud platform. Learn more at fastly.com
Fly.io – The home of Changelog.com — Deploy your apps and databases close to your users. In minutes you can run your Ruby, Go, Node, Deno, Python, or Elixir app (and databases!) all over the world. No ops required. Learn more at fly.io/changelog and check out the speedrun in their docs.