We are building a solution using service cloud console which will be used by multiple customers. One org will have data in various objects like accounts, contacts, cases and some custom objects for different customers.
We are working on designing how record level access will be restricted to users belonging to individual customers. We have come to understanding that we will have to share records with users of specific groups or roles.
Using sharing rules and apex sharing, i think records can be shared with both groups and roles in a similar manner. What is the difference between Groups and Roles other than that roles provide hierarchical access ? Which one seems to be better to be used in our scenario ?