Apex Managed Sharing provides developers with the ability to support an application to share requirements.
This type of sharing available to only users with modify all data permissions. Only these users can add/change apex managed sharing.
Apex Managed Sharing uses a Sharing reason (Apex Sharing Reason)
Multi-tenant Architecture