Partition based on both logical cohesiveness and physical boundaries.
-
If one entity has to make a lot of calls to another, try to place them as locally as possible.
Ideally they will be in the same package.
-
Do the same when one entity has to send another a lot of data.