Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

This section describes manners to decouple your application into several parts. This is needed to reduce the ripple effect that changes in a lower layer have in a higher layer (see 3. Clean Architecture in practice). Before going into details of each pattern, let us have a look at how the decision what pattern to use should be made.

  • Agility
  • Autonomy

Decision process

When choosing a decoupling pattern, you will roughly make this mental journey:

...

  • In what parts of the application are frequent changes expected? 
  • Where are additional features expected in the future? 
  • What is the expected life-span? 
  • Do you use the process engine? 
  • Do you have a user interface or a BAAS?  
  • How complex is the domain? 
  • ...
  • Agility
  • Autonomy
  • Test-ability
  • Performance

Based on the Characteristics, there is a Needed Decoupling Pattern. This pattern is optimal for the Characteristics of your specific Application. With this optimal pattern in mind, you need to match it to the Available Decoupling Patterns. If there is no pattern that is close to the optimal one, you should Propose a New Pattern. As this guide focuses on the domain and business rules for now, a matching pattern for other decoupling opportunities is likely not here yet. Each Available Decoupling Pattern has certain Quality Aspects, which are stated for each. These Quality Aspects need to be matched to the Quality Requirements of the Application that is being developed. These Quality Requirements are often:

...