I have yet another prisma versus graphcool-framewo...
# prisma-whats-new
l
I have yet another prisma versus graphcool-framework question. I'm currently on graphcool-framework, and I'm considering switching to Prisma. What are the concrete advantages to graphcool-framework over Prisma? Is there anything that graphcool-framework offers that Prisma does not?
The most important features to me are migrations, custom resolvers (serverless functions), subscription functions (serverless functions), declarative permissions, a data visualization GUI, a playground, token-based authentication, automatically generated CRUD for the most part
Does Prisma have all of this? I think it does. Serverless functions might just be run on the same running instance as Prisma, but I don't think that's a big deal. Also, permission queries are gone, but authorization through directives could replace that
Is there a compelling reason for me to stay with graphcool-framework?
Will I lose something by making the switch? For example, once graphcool-framework incorporates Prisma as its query engine, am I going to be sad I made the switch, and potentially want to make the switch back?
m
I am also very interested in the answer to this question
I feel like with all the announcements I should be considering moving to prismacloud
πŸ‘ 1
l
Exactly my feeling.
m
like graphcool isn’t gonna get deprecated right
lol
l
Prisma is an abstraction over the data layer. Graphcool BaaS abstracts the server and data layers. The Framework gives you control of the BaaS. Abstractions always come with the downside of less control. For instance, you cannot run a direct SQL aggregation query on the Framework... or Prisma, because both abstract that away. If you need direct db access, neither is right for you. There are a lot of server edge cases and Graphcool cannot solve them all. So they made Prisma for those cases -- run your own server, and then use Prisma for the data layer. If you aren't feeling constrained by the framework's limitations, there's no reason to switch.
πŸ‘πŸΎ 1
l
But with Prisma Cloud, aren't the abstractions reaching the same level? The problem is that I am seeing limitations, but I don't know if they're enough to warrant waiting around for Prisma to be incorporated back into graphcool-framework. Prisma Cloud seems to more or less be equivalent to the Graphcool BaaS...unless there is some huge difference that I'm missing. Can anyone point that out?
l
No they're not. Prisma Cloud is a cluster for running a prisma service... essentially a Scala container attached to a database. You can think of Prisma Cloud as Amazon RDS with a GraphQL interface. Not even close to Graphcool BaaS
m
Awesome thanks @lawjolla
πŸ‘ 1
s
I was about to write a long explanation, but @lawjolla is covering it pretty well. @lastmjs I’d suggest you read through this section of the Prisma docs which explains the architecture of applications build with Prisma: https://www.prismagraphql.com/docs/reference/introduction/what-is-prisma-apohpae9ju#architecture
Then revive the conversation if it is still not clear πŸ™‚
l
@sorenbs is that new? I like it!
l
@sorenbs Will do, and thank you @lawjolla
πŸ’― 2
It seems like the Graphcool BaaS simplifies the 4 steps needed to build a GraphQL server. Steps 1-3 seem to be combined into one schema definition in the BaaS. From that the data model, database schema, and application schema are all derived, mostly because the application schema and database schema are 1-1 equivalent. Prisma opens up the ability to make that not 1-1 equivalent. Step 4 is equivalent to serverless functions in the BaaS. So it seems like Prisma just opens up each step for more customization, but combining that with Prisma Cloud, I would get all of the functionality of the Graphcool BaaS, minus permission queries (unless I implemented those myself). Is there any concrete feature missing from Prisma with Prisma Cloud that I would get with the Graphcool BaaS, besides permission queries and a little more manual setup?
l
I'm not aware of any, but I think you're understating "a little more manual setup." It is significantly more. You are now managing a full Express/Node server with all of its quirks and power. Manual auth, manual deployment, schema stitching, etc
πŸ‘ 1
l
Manual auth? I've already switched to implementing manual auth in custom resolvers. Is there anything else there? Manual deployment? Prisma deploy to Prisma Cloud. Is there more to that?
l
You need to deploy your GraphQL server too
Our clear recommendation is to choose Prisma when feasible.
h
GCF have files handling image proxy a lot of features what prisma don't have at all. With prisma you need to implement everything by yourself
πŸ‘ 1
n
Yes, we do @lastmjs πŸ™‚
πŸ’― 1