To get better results in terms of speed and resources used, it's suggested to
use a cache. We can store in it the results corresponding to the methods'
invocations as key-value pairs: method and arguments as key and return object
as value................

Once a user is authenticated and has roles, he or she can work on the
application and perform the actions permitted by an access control list, which
according to the user's roles allows certain operations................