This section will walk over communication types that behaves differently than normal function calls from.
Namely, if functions are in different domains, private vs. public, their execution behaves a little differently to what you might expect! See Private <--> Public execution.
Likewise, executing a function on a different domain than its origin needs a bit extra thought. See L1 <--> L2 communication.