title: Bounded context implementation and design
body: <p>Let's say I have two bounded contexts, the <em>Shipping Context</em> and the <em>Billing Context</em>.  Each of these contexts need to know about the customer.</p>
  
  <p>At a data level, the customer is represented by a <code>CustomerTbl</code> table in a database.  This table consists of all the necessary columns that describe the customer.  </p>
  
  <p>Columns in <code>CustomerTbl</code> (simplified):</p>
  
  <ul>
  <li><code>Name</code></li>
  <li><code>PhysicalAddress</code></li>
  <li><code>PaymentMethod</code></li>
  </ul>
  
  <p>The <em>Shipping Context</em> is concerned with <code>Name</code> and <code>PhysicalAddress</code> while the <em>Billing Context</em> is concerned with <code>Name</code> and <code>PaymentMethod</code>.</p>
  
  <p>In the <em>Shipping Context</em> I have modeled the aggregate <code>Recipient</code>:</p>
  
  <ul>
  <li><code>Recipient</code> now has properties/value objects for <code>Name</code> and <code>PhysicalAddress</code></li>
  </ul>
  
  <p>In the <em>Billing Context</em> I have modeled the aggregate <code>Payer</code>:</p>
  
  <ul>
  <li><code>Payer</code> has properties/value objects for <code>Name</code> and <code>PaymentMethod</code></li>
  </ul>
  
  <p>Both <code>Recipient</code> and <code>Payer</code> aggregates are completely separated by the context boundary.  They also have their own repositories.</p>
  
  <h2><strong>Questions:</strong></h2>
  
  <ol>
  <li><p>Is it acceptable to have multiple aggregates (provided that they are in separate bounded contexts) using the same "database table"? </p></li>
  <li><p>Customer data would likely be needed in many more bounded contexts.  Would this not mean many aggregate, repository and factory implementations for each bounded context?  There will be a degree of redundancy in code.  Does this not effect maintainability?</p></li>
  <li><p>Is it acceptable to have shared properties across aggregates?  An example would be the customer <code>Name</code> property.  This would also mean redundant validation code?  </p></li>
  </ol>