At the moment we have a customer portal and we are looking to move to communities. The Customer Community license and the Customer Community Plus license offer different options for the sharing of the data. That's why we are investigating the options.
The current portal makes use of the sharing sets. There are 9 profiles for the portal and on each custom object there are 9 account lookups. Each profile has its own lookup. Via the sharing sets we are able to define that the user has access to the data when the user's account is set in the corresponding lookup on the custom objects.
So as a portal user you can only see the data of your own account. In certain cases you should also see data from another account. It isn't possible to make the sharing sets look at more than 1 lookup, so we made a profile switch. This is a workaround and we would like to get rid of it.
The Customer Community license also works with the sharing sets, so that would put us into the same situation. The Customer Community Plus license would give us the ability to use apex sharing. The original idea was to give access to the data of the own account via the sharing sets and use apex sharing to give access to the data of another account. This isn't possible, since you can't use sharing sets with Customer Community Plus.
It means we would have to use apex sharing for everything. We have like 8 different custom objects and considering we have 3 custom objects with a lot of records (33 million, 27 million and 11 million), that's going to result in a lot of sharing rules.
Does anyone know if there is a limit on the amount of apex sharing rules? Would there be any performance issues (due to the amount and in the case of sharing recalculations)?
Did anyone faced a similar situation before and in which way have you done your setup?
Thanks in advance.