We've kept an eye on the graphcool stuff for a while and are currently looking to replace our own GraphQL impls. with pieces from graphcool. Right now in particular, our next project involves implementing something that does pretty much what Prisma does...as a result, we're thinking of using Prisma instead of rolling our own. Not entirely the whole prisma systems looks huge. What we're after is data virtualisation. GraphQL as the lang of choice for all schemas and something between our services and Cassandra/ES. We need queries, mutations and subscriptions.
I've had a look through the docs/github and my impression of how this goes together so far is this...
There's a GQL server written in Scala (with sangria) which provides a GQL api. This I imagine does generic field resolution. The prisma tools when it generates a server, this is in JavaScript/typescript and users primarily will work in the JS world. I expect this server is a proxy to the Scala one?
It's currently unclear to me what the role of lambda/serverless is in all this.
For us, we only want to take the Scala/Sangria server. We're a JVM shop with the exception of our two frontend team members we could scrape some javascript/typescript together to make something just work but it's not something we're comfortable in. Our existing stack is Scala/Sangria - we're already doing generic field resolution, we don't know our schemas in advance they're defined at install time.
What I'm after is a little guidance on how feasible it is to just use/extend the Scala/sangria parts of prisma. Some info about what the docker/docker-compose stuff is all about...where does it fit in?
Are the docker bits hard dependencies, only parts of our stack is containerised so some stuff is still bare metal. AWS/Cloud/serverless isn't an option as we do on prem installs for some deployments.
From what I read prisma does all of what we need, it's just unclear to me where it all happens (is it in the Scala server or the generate JS), is it as easy as, publish sbt modules as a lib and use/extend some classes or will it be a major refactor to get bare minimum without the JS/serverless/docker stuff.
I'd rather we didn't have to re-invent all of this when our time could be better spent contributing to prisma server so I'm currently going throgh the code but it's not tiny project so thought I'd ask for pointers before going to far or getting overwhelmed by pieces that I needn't pay too much attention to.