Cross-Cutting concerns for an Enterprise Application

Reading Time: < 1 minute

In this article, I would like to provide an overview of what are Cross-cutting concerns and what are the most common cross-cutting concerns that must be considered as part of the system design. In this article, I would like to provide the core concerns that should be considered while designing the application. Please do note that additional cross-cutting concerns need to be applied based on the domain of the application.

Before delving into details, let us first understand what is a ‘cross-cutting concern‘ and why we must consider building the enterprise applications.

Concern means “it is a behavior/functionality that we would like to implement in an application/ module”.

What is Cross-cutting-concern?

The cross-cutting concern is a concern that is applicable throughout the application and it affects the entire application. 

Below are the Cross-cutting concerns those are applicable for all the enterprise applications

  • Security
    • Authentication / Authorization
    • Data transport/message handling
    • Identity Management
    • Secure Accessibility of resources
    • Data Security (Encryption / Hashing considerations)
  • Performance
    • Server-side Cache
    • Http cache
    • Static resources cache / CDN
    • Browser cache
  • Request Tracing
  • Exception handling and Logging
  • Monitoring
  • Transaction Management (Distributed)
  • Audit Log (Does not require in every application)
  • Communication with External System (Does not require in every app)
    • How and Agreement policies over data exchange

Microservice Applications requires to take care of a few more additional concerns in addition to above-mentioned ones

  • Centralize Configuration Management
  • Distributed Request Tracing
  • Service Registration & Discovery
  • Service-to-service communication
    • Synchronous
    • Asynchronous
  • Message Idempotency (When dealing with message queues)
  • Shared data / logic / libraries

These are the concerns

Please let me know if you would like to add additional concerns in addition to the above-mentioned ones.

Please share your thoughts in the comments box below. Thank you for reading the article.