[Absinthe] What happens after resolver finishes?


I was hoping to get a little guidance regarding how requests are processed using Absinthe.

A little context: I am relatively new to Elixir/Phoenix and am tasked with trying to find bottlenecks in our app and try to optimize request processing durations. In particular, I am interested in learning more about what happens after the resolver is finished.

My goal is to get 100% observability for requests through my app. Below is a sample trace for a typical request through my app. I can’t help but notice the gap of “nothingness” between when the resolver ends and the json encoding begins. Does anyone knows what happens between these two events? Is it perhaps json serialization (or maybe that is apart of the json encoding?)? I would appreciate any guidance and/or resources to 1. find out what is happening during this time, and 2. how I could get some observability during that process (where I could inject our 3rd party observability logic).

Thank you for any feedback!