Responsibility Layers

The Responsibility Layers pattern can be used on bounded contexts and aggregates to specify their responsibilities.


The responsibilities can simply be defined with the keyword/attribute responsibilities and a list of responsibilities (as strings):

BoundedContext CustomerManagementContext implements CustomerManagementDomain {
  type = FEATURE
  domainVisionStatement = "The customer management context is responsible for ..."
  implementationTechnology = "Java, JEE Application"
  responsibilities = "Customers", "Addresses"
Aggregate Customers {
  responsibilities = "Customers", "Addresses"
  Entity Customer { 
    - SocialInsuranceNumber sin
    String firstname
    String lastname
    - List<Address> addresses