Can I run multiple inter-canister update calls in parallel?

Depends on your requirements.

Splitting a dapp (whose canisters communicate with one another) across multiple subnets means additional latency for cross-subnet (XNet) calls. On the order of 2x the latency of an ingress message (because essentially one subnet needs to induct the other’s request, handle it and certify a response; and the originating subnet needs to induct the response and handle it; and it had to certify the request before the “server” subnet could induct it). On the plus side, if you can scale your dapp proportionally to the size of the IC (in terms of throughput and storage).

Keeping all of a dapp’s canisters on a single subnet gives you very fast inter-canister calls (multiple back-and-forth messages per round in the average case; so at least an order of magnitude faster) but you are limited by the latency, throughput and storage of that subnet (which, you must remember, will be shared with tens of thousands of other canisters).

3 Likes