According to this article: (Link to article), there are two types of validation for cross-shard transactions: Synchronous and Asynchronous.
But the question is that why cannot we use Beacon chain snapshots (as a single common chain between all the shards) to validate such transactions "locally" and without need of communication with other shards for each cross-shard transaction, where Beacon chains include all the snapshots of all the shards.
For example, assuming a transaction is performed between shard#1 and shard#2, such that the credit part is in the shard#1 and the debit part is in the shard#2. Then, if both shards have a Beacon chain (including the snapshot of both shards), this transaction can be validated in each shard locally using the Beacon chain snapshots and without communicating with other shard.
Is there something that I do not consider?