DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports Events Over 2 million developers have joined DZone. Join Today! Thanks for visiting DZone today,
Edit Profile Manage Email Subscriptions Moderation Admin Console How to Post to DZone Article Submission Guidelines
View Profile
Sign Out
Refcards
Trend Reports
Events
Zones
Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones AWS Cloud
by AWS Developer Relations
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones
AWS Cloud
by AWS Developer Relations
Securing Your Software Supply Chain with JFrog and Azure
Register Today

Trending

  • Five Java Books Beginners and Professionals Should Read
  • Implementing a Serverless DevOps Pipeline With AWS Lambda and CodePipeline
  • Alpha Testing Tutorial: A Comprehensive Guide With Best Practices
  • Tactics and Strategies on Software Development: How To Reach Successful Software [Video]

Trending

  • Five Java Books Beginners and Professionals Should Read
  • Implementing a Serverless DevOps Pipeline With AWS Lambda and CodePipeline
  • Alpha Testing Tutorial: A Comprehensive Guide With Best Practices
  • Tactics and Strategies on Software Development: How To Reach Successful Software [Video]
  1. DZone
  2. Data Engineering
  3. Data
  4. Cross-Cutting Concerns for An Enterprise Application

Cross-Cutting Concerns for An Enterprise Application

Cross-cutting concerns are an integral part of any system design. By identifying and defining the Cross-cutting concerns upfront helps to design more secure and performant applications

Anji K user avatar by
Anji K
·
Jul. 13, 20 · Opinion
Like (2)
Save
Tweet
Share
4.97K Views

Join the DZone community and get the full member experience.

Join For Free
Cross-cutting concerns are an integral part of any system design. By identifying and defining the cross-cutting concerns upfront helps to design more secure and performant applications

In this article, I would like to explain what a cross-cutting concern is and what are 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 a "cross-cutting concern" is and why we must consider them while building the enterprise applications.

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

What Is a Cross-Cutting Concern?

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

Cross-cutting concerns help you to manage the application level functionalities in a centralized location.

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

  • Security
  • Performance
  • Request tracing
  • Exception handling and logging
  • Monitoring
  • Transaction management (distributed)
  • Audit log (does not require in every application)
  • Communication with external systems (does not require in every app)

Microservice applications require 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
  • Message idempotency (when dealing with message queues)
  • Shared data/logic/libraries

As part of the security, below are the few concepts you should look at:

  • Authentication/authorization
  • Data transport protocols/message handling
  • Identity and Access Management
  • Secure Accessibility of resources
  • Data Security (Encryption/Hashing considerations)
  • Security at REST and Transit

Below are the few areas/concepts you should look at:

  • Server-side Cache
  • HTTP cache
  • Static resources cache/CDN
  • Browser cache

Also, please make sure you have the cache invalidation techniques in place to avoid serving the stale data to users.

It is always good to trace the request from where it is originated and how it responded to the user. It is very helpful when debugging the application in production.

Centralized exception handling is one strategy to make sure our system is always responding in a positive note. Any unhandled exception can lead to crashing the entire application.

By centralizing all the exceptions into a datastore helps to identify the common errors that development needs to improve on and stability of a new feature when released to production.

The monitoring system helps you to identify the system behavior and issues that are occurring in the production. It helps you to detect the failures proactively and early to avoid system failures.

Transaction management makes sure your application is following the ACID properties. By defining and adopting the transaction management strategy you can avoid data inconsistency issues.

Distributed Transaction Management is critical when dealing with microservice systems.

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

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

application Data security Cross-cutting concern

Published at DZone with permission of Anji K. See the original article here.

Opinions expressed by DZone contributors are their own.

Trending

  • Five Java Books Beginners and Professionals Should Read
  • Implementing a Serverless DevOps Pipeline With AWS Lambda and CodePipeline
  • Alpha Testing Tutorial: A Comprehensive Guide With Best Practices
  • Tactics and Strategies on Software Development: How To Reach Successful Software [Video]

Comments

Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com

Let's be friends: