Nick & KBall sit down with the brilliant Stephen Haberman to discuss all things ORMs! 💻🔍
From the advantages and disadvantages of ORMs in general, to delving into the intricacies of his innovative project Joist, which brings a fresh, idiomatic, ActiveRecord-esque approach to TypeScript. 🚀
So sit back, relax, and let’s dive deep into the world of ORMs with the experts!
Leave us a comment
Changelog++ members save 2 minutes on this episode because they made the ads disappear. Join today!
Sponsors:
- 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.
- KBall Coaching – Free exploratory coaching sessions from JS Party co-host KBall! Click here to get started
Featuring:
- Stephen Haberman – Twitter, GitHub, LinkedIn, Website
- Nick Nisi – Twitter, GitHub, Website
- Kevin Ball – Twitter, GitHub, LinkedIn, Website
Show Notes:
- TypeScript: Documentation - Mapped Types
- Hello from Joist | Joist
- TypeORM - Amazing ORM for TypeScript and JavaScript (ES7, ES6, ES5). Supports MySQL, PostgreSQL, MariaDB, SQLite, MS SQL Server, Oracle, WebSQL databases. Works in NodeJS, Browser, Ionic, Cordova and Electron platforms.
- Active Record Basics — Ruby on Rails Guides
- graphql/dataloader: DataLoader is a generic utility to be used as part of your application’s data fetching layer to provide a consistent API over various backends and reduce requests to those backends via batching and caching.
- facebook/Haxl: A Haskell library that simplifies access to remote data, such as databases or web-based services.
- Working with Entity Manager | MikroORM
- Object-Relational Mapping is the Vietnam of Computer Science
- kysely-org/kysely: A type-safe typescript SQL query builder
- Validation Rules | Joist
- Derived Fields | Joist
- The Streaming Database | Materialize
- PostgreSQL: The world’s most advanced open source database
- PostgreSQL: Documentation: 15: 41.3. Materialized Views
- Joist Slack
Something missing or broken? PRs welcome!
Timestamps:
(00:00) - It's party time, y'all
(00:56) - Welcoming Stephen
(02:37) - Did you hear that, Jerod?
(03:16) - Defining "ORM"
(05:10) - Why write a new ORM?
(11:47) - The data loader pattern
(17:07) - Joist vs ActiveRecord
(21:49) - Why Joist uses type hints
(28:56) - When Joist uses promises
(32:16) - Joist's API details
(35:58) - Sponsor: KBall Coaching
(36:43) - Where the biz logic goes
(40:16) - Lifecycle hooks
(44:42) - No cycles please
(46:03) - Batching & ergonomics
(50:55) - Arguments against ORMs
(55:09) - Thinking in entities
(1:00:27) - Reactivity in Joist
(1:06:57) - KBall is excited
(1:09:51) - Wrapping up
(1:11:15) - Next up on the pod