Coming back to the tracing question above. I'm using the tracing support in pedestal.log combined with AWS X-ray. It seems like it's a very common pattern to store the active "span" (or Segment/Subsegment in XRay terms) in a Thread local. It seems though that Lacinia manages its own thread pool using agents, so the resolvers are not executed in the HTTP thread. I'm using the plain query-executor-handler (not the async one) so I'm wondering if that's expected behaviour.
File uploads with lacinia - what have people done for this / is this a supported thing
Nope, unless you base64 at the client. Best to have a separate endpoint for file uploads.
For some excel uploads I opted to parse client-side and call a graphql endpoint directly - avoiding potential vulnerabilities in parsing Excel files.
Indeed, not even lacinia specific, GraphQL has no binary type.
We have implemented the https://github.com/jaydenseric/graphql-multipart-request-spec for lacinia to support uploads with graphql; unfortunately it's a private lib right now but willing to open source it if there's interest
This worked great with https://github.com/jaydenseric/apollo-upload-client