Responsibility Layers

The Responsibility Layers pattern from the “blue book” 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