Can some one do a YouTube video on optimizing cross canister calls?

It’s starting to feel like arbitrary when I will hit the 500 message limit. I need a good explanation on how it al works

The presentation by @dsarlis at the Scalability & Performance WG last week should be a good starting point:

Here’s a summary as a tweet thread:

but it’s worth to watch the recording.


Just curious, what is the use case that results in 500+ messages concurrently in flight between a pair of canisters?

The main reason for the existence of the limit is precisely because we wanted to prevent arbitrarily large backlogs unintentionally building up when one canister in a communicating pair can produce messages significantly faster than the other canister can consume them. And we figured 640 KB… err… 500 messages should be enough for everyone.

1 Like

If you are “maybe calling yourself” convert to asycn* and await* and it will help out a lot.

Also batch your calls if you are sending to another canister. I might put a tutorial together about this using the new timer API…I’ve been needing to try it out.