The Rust CDK’s async/await types do not seem suited for a single-threaded environment. Because of this, I am not able to do cross-canister calls from within resolvers created for the async-graphql crate. Here’s an issue from async-graphql that explains the problem: Having trouble using std::rc::Rc values within a Mutation object. · Issue #110 · async-graphql/async-graphql · GitHub
And here’s an issue from Sudograph, the real issue I’m trying to solve: Cross-canister calls from within async-graphql will not work!! · Issue #36 · sudograph/sudograph · GitHub
I think it should be a relatively simple change to the Rust CDK packages, but I’m not familiar enough with async Rust types yet to know exactly how to fix it off the top of my head. @hansl mentioned a month or so ago during a developer meetup that he thought he could get this fixed.