Cross-Cutting Concerns
What are Cross-Cutting Concerns?
In solution architecture, some topics don’t fit neatly into just one perspective—they affect multiple areas of your solution simultaneously. These are called cross-cutting concerns.
Think of security as an example: it’s not just a technology issue or just an operations issue. Security affects how the business operates, how applications are built, how data is protected, how code is developed, and how systems are monitored in production. It “cuts across” multiple concerns.
Why Cross-Cutting Concerns Matter
Cross-cutting concerns are important because:
- They need a consistent application: A security approach that works in development but fails in operations creates vulnerabilities
- They require coordination: Multiple teams with different perspectives must align on these topics
- They’re easy to miss: When something spans many areas, it’s easy for gaps to appear between teams
- They affect quality: Many cross-cutting concerns directly impact the overall quality and reliability of your solution
Cross-Cutting Concerns in ArchRepo
ArchRepo handles cross-cutting concerns by allowing topics to appear in multiple concern areas. This ensures you can view them from whichever perspective is most relevant to your current task.
Examples of Cross-Cutting Concerns
Non-Functional Requirements
- Appears in: Apps & Systems, Technology, Operations
- Why: Quality characteristics like performance, security, and scalability must be considered during design (Apps & Systems), implemented using the right technology stack (Technology), and monitored in production (Operations)
Security
- Appears in: Technology, Operations
- Why: Security mechanisms must be built into the technology architecture and continuously monitored during operations
Environments
- Appears in: Build, Transition, Operations
- Why: Environments are where code is built and tested (Build), where releases are deployed (Transition), and where production systems run (Operations)
Business Information
- Appears in: Business, Data
- Why: Information has business meaning and rules (Business perspective) but also technical implementation as data structures and flows (Data perspective)
APIs and Streams
- Appear in: Apps & Systems, Data
- Why: APIs are application interfaces (Apps & Systems perspective) but also mechanisms for data exchange (Data perspective)
Test Data
- Appears in: Data, Build
- Why: Test data has structure and content (Data perspective) and is essential for development and testing activities (Build perspective)
Data Migration
- Appears in: Data, Transition
- Why: Migration involves moving data between systems (Data perspective) as part of transitioning to the new solution (Transition perspective)
Working with Cross-Cutting Concerns
When working with cross-cutting concerns in ArchRepo:
- Expect to see topics in multiple places: This is intentional, not duplication. Each concern provides a different lens on the same topic.
- Consider all perspectives: When making decisions about cross-cutting concerns, check how they appear in each relevant concern area to ensure you’ve thought through all implications.
- Maintain consistency: Information about a cross-cutting concern should remain consistent across all views. If test data requirements change, that affects both the Data and Build concerns.
- Use relationships: ArchRepo’s relationship features help you connect cross-cutting concerns to specific items in different areas, ensuring traceability across perspectives.
By recognising and properly managing cross-cutting concerns, ArchRepo helps ensure that important architectural considerations don’t fall through the cracks between different teams or phases of your project.