GraphQL, Docker, Prisma, and Heroku structure


#1

I have a fundamental structural question regarding GraphQL that I’m having difficulty grasping. I currently have the GraphQL server, Prisma Server, Docker, Heroku, and Postgres. I also have a 1) development endpoint, 2) production endpoint, 3) test endpoint, 4) prisma.js endpoint, as well as an endpoint in my .graphqlconfig. As far as I understand, when a client application contacts the GraphQL server at port 4000, the server processes the schema.graphql and the resolvers, and from the resolvers, either prisma.query/mutation/subscription gets invoked. At this point, depending on how the client initially requested (npm start, npm run dev, or npm run test), the request from the resolver gets processed differently at the Prisma server(?). After that, the request arrives at Heroku and then ultimately at Postgres’ specific database table (either prod, dev, or test table). I’m not sure this is the right line of thinking or not. I’m also not sure how all 4 of those endpoints mentioned coordinate with each other. And lastly, I’m not sure where Docker fits into this picture. I appreciate your help in advance.


#2

Hi @kevv

First of all, docker is a runtime and runtime image platform which is used as an environment for your prisma images.

The request follow the following route:

[ Client ] <----> [ You application graphql server ] <--------> [ Your Prisma Server on heroku ] <------> [ Your database ]

here is a diagram from advancedreact.com that can help you understand the concept.