title: Bounded Contexts and Aggregate Roots
body: <p>We are trying to model an RBAC-based user maintenance system using DDD principles. We have identified the following entities:</p>
  
  <pre><code>Authorization is an Aggregate Root with the following:
      User   (an entity object)
      List&lt;Authority&gt;    (list of value objects)
  
  Authority contains the following value objects:
      AuthorityType (base class of classes Role and Permission)
      effectiveDate
  
  Role contains a List&lt;Permission&gt;
  Permission has code and description attributes
  </code></pre>
  
  <p>In a typical scenario, Authorization is definitely the Aggregate Root since everything in user maintenance revolves around that (e.g. I can grant a user one or more Authority-ies which is either a Role or Permission)</p>
  
  <p>My question is : what about Role and Permission? Are they also Aggregate Roots in their own separate contexts? (i.e. I have three contexts, authorization, role, permission). While can combine all in just one context, wouldn't the Role be too heavy enough since it will be loaded as part of the Authorization "object graph"?</p>