I usually don't comment on stuff, but well done on this really good article. Thanks for the sweet summary!
Roman very nice writeup!
Understood if you're tired of learning yet-another-ORM at this point :-), but if you want to check out Joist (joist-orm.io), it's an ORM we've written and would appreciate your input/thoughts on it.
To your chagrin, we'd also don't have a robust query builder yet :-) (we defer complex query use cases to Knex for now), but we do consider ActiveRecord to be a big source of inspiration (a lot of our domain objects, validation rules, and lifecycle hooks are inspired by ActiveRecord).
I think in a few cases we've surpassed ActiveRecord in ergonomics (specifically since we build on dataloader, we get N+1 avoidance basically for free; and our reactive rules & derived fields is pretty unique I think), but overall it's still a high bar to meet!
Nice in depth article. I've dabbled in Prisma for the past few months. The community is getting pretty big and it is definitely handy at a startup level. There are still a few things they still need to work on like Optimistic Concurrency Control feature updateMany still has a bug (hopefully will be fixed soon), no nested createMany (doesn't make a big deal breaker). With PostgreSQL they released GIN, GiST, SP-GiST, and BRIN indexes support on 3.14.0 my interest is in BRIN for time scheduling. I was trying to avoid decorators so that's why MikoORM was out otherwise it would have been my second choice.
Curious to know what review for code first graphql SDL like Nexus/Nexus-Prisma vs Pothos you would prefer next? IMO Pothos has some really good documentation and the code is readable but the dot notation with Nexus/Nexus-Prisma is smooth (once you can fully master it i think...)
Wow-what a thorough article good one!
Roman it's definitely no easy task writing up multiple ORMs and takes enormous amount of time. I know most people go the REST route but GraphQL it definitely nice to scale. I know for me working in graphql in a work project makes a lot of sense once you understand it because it applicable later on and no major changes are needed. Looking forward to your next article keep it up.
Ahmed Pat
Software nerd
You should add Kysely to the list. Without the benchmarks part would be fine.