top | item 41992264

(no title)

nikolasburk | 1 year ago

Nikolas from Prisma here! I've been around for almost 8 years (since the Graphcool days) and this description is pretty accurate but I can add a bit more color. The major product evolutions we've had were:

- Graphcool: A GraphQL BaaS written in Scala.

- Prisma 1 (see [1]): A GraphQL proxy server between DB and app server. This was essentially the "GraphQL engine" of Graphcool that we ripped out and made it available as an open-source component. However, its auto-generated CRUD GraphQL API never was meant to be consumed by a frontend. Instead, it was the abstraction layer for the app server to interact with the DB (at first only for GraphQL APIs on the app server via `prisma-binding`, then the first version of Prisma Client that worked with any API layer — both of these were thin JS/TS layers that talked to the GraphQL proxy server where the actual DB queries were generated).

- Prisma 2+ aka Prisma ORM (see [3]): We realized that with Prisma 1, we were essentially competing with ORMs but that our architecture was way too complex (devs needed to stand up and manage an entire server where other ORMs could be used with a simple `npm install`). So, we rewrote the Scala "DB-to-GraphQL" engine in Rust to be able to provision it via a download during `npm install` and run it as a sidecar process on the app server, added a migration system and Prisma ORM was born. That being said, it has evolved a lot since then. We dropped GraphQL in favor of a way more efficient wire protocol [4] and have continuously reduced the footprint and responsibility of the query engine (e.g. you can now use Prisma ORM with standard Node.js DB drivers [5]).

If you want more details, I talked more about this evolution on Twitter [6] a while ago.

This launch is a huge milestone for us and it's definitely one of the most exciting launches I've been a part of at Prisma!

[1] https://www.prisma.io/blog/prisma-raises-4-5m-to-build-the-g...

[2] https://github.com/prisma-labs/prisma-binding

[3] https://www.prisma.io/blog/prisma-the-complete-orm-inw24qjea...

[4] https://www.prisma.io/blog/prisma-5-f66prwkjx72s

[5] https://www.prisma.io/docs/orm/overview/databases/database-d...

[6 ] https://x.com/nikolasburk/status/1384908813069869058

discuss

order

No comments yet.