I have an Elixir Umbrella app, with Phoenix, Absinthe (graphQL). In AppWeb
, my AppWeb.Router
routes requests, handling /graphql
with Absinthe.Plug
and using MyApp.Schema
.
In AppWeb.Schema
, I import objects from numerous different schemas in different OTP applications using import_types
. I will use Users
as an example.
The Users.Schema
has objects and fields, where eventually will resolve &Resolvers.resolve_x/2
I know that Phoenix is starting a new process on each request, the hexdocs Absinthe.Schema
states In Absinthe 1.5 schemas are built using the same process by which queries are executed. Does that mean that each new process created by a request by phoenix, communicates with a single schema (AppWeb.Schema
) process? If so, won't that create a bottleneck? If not, isn't that a lot of code (all resolvers and relevant functions from all OTP apps) to be transferred to the new schema process spawned every-time?