Where should I put my plumbing or infrastructure code (i.e., logging, error handling, notifications, security) in my application? Application domain features use these aspects – but they are not related to the specified feature. What are the best practices for implementing cross-cutting concerns? Where should they be located and how can I share them between multiple applications and projects? Learn to manage and separate cross-cutting concerns from your applications to improve modularity.