if the snipped you shared is part of a query function, you wouldn’t be able to call other query functions if my understanding about the information shared in the composite query docs is correct
@Severin does that mean you’d always need to define such function as update function or make use of composite query, where you would then have to be sure that the targeted canisters all belong to the same subnet?
Nailed it. We haven’t talked much about composite queries lately. I’m guessing with the recent mentions of subnet migration that these will get a bit less useful as you may suddenly find that the canister you were querying has migrated.
Great question. Is there something they do with the tip besides just do the transaction? It may be that it is all client side(with maybe a message saved in the chat stream with a tip type?) I have never used it. Typically people use the memo field to store some info as a signal to a processing canister. But if the tokens are going to a bunch of different addresses that they don’t know they need to monitor from a bunch of different ledgers that would be a processing nightmare. (You might wish you had an event pubsub system )
The fact that composite queries to a canister fail after the callee migrates away to a different subnet is indeed a downside of the restriction that composite queries can only target canisters on the same subnet. To prevent such failures, composite queries should not cross canister groups owned by the same entity which can thereby be expected to move to a different subnet together.
It is probably a dot point to put on the canister migration roadmap to make sure the docs on how to do this are up to date and clear. Is this a setting you can set after deployment? During deployment?
I’m not sure what “setting” you refer to: when I talked about “canister groups” I didn’t have any IC settings in mind, I just wanted to characterize a set of canisters that happen to call each other and it is the canister’s responsibility to not call canisters that are owned by a different entity and thus could be migrated unexpectedly.