DocuEye Logo

Architecture Linter Rules

Architecture linter verifies architectural models for compliance with established design rules and constraints. This enables early detection of design errors and increases architectural consistency across the entire team or organization.

Below you can find a description of the ready-to-use rules. You can download the ready-to-use definitions in JSON format here.

Containers should not have cyclic dependencies

Containers must not depend on each other in a cyclic manner to avoid tight coupling and maintainability issues.

Frontend can not connect directly to database

Data access must be provided through a backend/API layer to ensure security, access control, validation, and separation of responsibility.

Container technology must be defined

The lack of information about technology makes it difficult to analyze the architecture, validate dependencies, and assess technological compatibility.

Container technology must be one of the allowed technologies

The container technology must be from the organization's list of permitted technologies. This rule ensures consistency across the technology stack, limits shadow IT, and simplifies system maintenance and support.

Relationships from external systems to database are not allowed

External systems cannot have direct relationships to the database. Data access must be mediated through a controlled application interface (API/service layer) to reduce the risk of security breaches and maintain data integrity.

Relationship technology must be defined

Each relationship between components must have a defined communication technology. This allows for integration analysis, architectural error detection, and infrastructure requirements assessment.

Every container should have instance

Each container should have at least one instance to ensure it is deployed and operational.

Database container must not have outgoing relationships

Database containers should not have outgoing relationships, because databases should be passive infrastructure components and must not depend on or call other containers. Replication and backup relationships may be allowed as an exception.

Relationship description must be defined

Each relationship should have a description explaining the purpose of the communication. This ensures clarity of the model and supports architectural reviews and onboarding.

Element description must be defined

Each element must have a description of its role and responsibility. Without a description, the model loses its documentary value and complicates architecture analysis.

Relationship technology must be consistent with destination container technology

The relationship technology must be compatible with the target container's technology. This rule prevents incorrect or unrealistic integrations in the model.

Containers must specify SLA / criticality tier

Each container must specify its SLA or criticality tier to ensure proper prioritization and resource allocation.

DocuEye - Visualize architecture.

Free and open source tool for software architecture visualization with built-in architecture linter.
Documentation as a code approach based C4 Model.

Copyright © 2026 DocuEye - All rights reserved

Resources

Sources and documentationC4 modelStructurizr DSL language reference