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?