Check rules
Every rule the checks apply to your diagrams, in your browser, without AI and without credits. Each entry gives the default severity, why the rule matters and how to resolve the finding. The texts are the ones the app shows on a finding.
On this page
The checks run in your browser on every change of the diagram. They use no credits and send nothing. The severities below are the product defaults. The Standards (STD) and Governance (GOV) rules fire only when your workspace keeps a technology radar, decisions or exceptions.
All rules
| Rule | Name | Family | Default severity |
|---|---|---|---|
| REL-01 | Single point of failure | Reliability | High |
| REL-02 | Missing zone redundancy | Reliability | Medium |
| REL-04 | No DR stated | Reliability | Medium |
| REL-06 | Hybrid link not redundant | Reliability | High |
| PERF-01 | Long synchronous chain | Integration | High |
| PERF-02 | Synchronous cycle | Integration | High |
| PERF-03 | Chatty cross-boundary call | Integration | Medium |
| PERF-04 | Missing resilience policy | Integration | Medium |
| PERF-05 | Shared database | Integration | Medium |
| PERF-07 | Integration bypasses the platform | Integration | Medium |
| SEC-01 | Unauthenticated entry point | Security | High |
| SEC-02 | Ingress bypasses the edge | Security | High |
| SEC-03 | Unencrypted boundary crossing | Security | High |
| SEC-07 | PaaS reachable publicly | Security | Medium |
| DATA-01 | Store without backup | Data | High |
| DATA-03 | Residency violation | Data | High |
| DATA-05 | Async hygiene | Data | Medium |
| NET-01 | Overlapping address spaces | Network | High |
| NET-02 | Subnet outside its network | Network | High |
| NET-03 | Missing route | Network | High |
| NET-04 | Management port exposed to the internet | Network | High |
| NET-05 | Unencrypted cross-zone flow | Network | Medium |
| OPS-01 | No telemetry sink | Operations | Medium |
| HYG-01 | Missing metadata | Hygiene | Low |
| HYG-02 | Vague label | Hygiene | Low |
| HYG-03 | Orphan | Hygiene | Low |
| HYG-04 | Missing flow | Hygiene | Medium |
| HYG-05 | Naming | Hygiene | Info |
| HYG-06 | Diagram quality | Hygiene | Info |
| STD-01 | Technology past or near end of life | Standards | High |
| STD-02 | Technology on hold | Standards | Low |
| STD-03 | Technology not on the radar | Standards | Info |
| GOV-01 | Expired exception | Governance | High |
| GOV-02 | Exception due for review | Governance | Medium |
| GOV-03 | Overdue condition | Governance | Medium |
| GOV-04 | Changed since the review decision | Governance | Info |
In the app, severity reads HIGH, MED, LOW or INFO. To handle a finding, see Run checks and handle findings.
Reliability
REL-01 Single point of failure
- Severity: High when the element is critical, else medium.
- Why it matters: One failure takes the element, and every flow that depends on it, down.
- How to fix it: Run two or more replicas across zones, use a managed tier with built-in high availability, or state its high availability: active-passive, primary and replica, or active-active.
REL-02 Missing zone redundancy
- Severity: Medium.
- Why it matters: A zone outage takes every replica down at once.
- How to fix it: List two or more zones, or spread the replicas across zones.
REL-04 No DR stated
- Severity: Medium.
- Why it matters: Without a stated recovery mode, RPO and RTO, recovery from a regional loss is improvised.
- How to fix it: State the disaster recovery of the primary store's instances: its mode, its RPO and its RTO.
REL-06 Hybrid link not redundant
- Severity: High.
- Why it matters: One tunnel or circuit is a single point of failure for every hybrid call.
- How to fix it: Add a second link, or give the link a second tunnel or circuit.
Integration
PERF-01 Long synchronous chain
- Severity: Medium; high when the chain is longer than 5 hops.
- Why it matters: Latency and failure probability add up along a synchronous chain; one slow hop stalls every caller.
- How to fix it: Cut the chain with asynchronous messaging, a cache or replicated data, or merge fine-grained services.
PERF-02 Synchronous cycle
- Severity: High.
- Why it matters: A synchronous cycle is a distributed monolith: deadlock and retry amplification risk.
- How to fix it: Break the cycle with an event, or move the shared logic to one side.
PERF-03 Chatty cross-boundary call
- Severity: Medium.
- Why it matters: Chatty I/O across a boundary multiplies latency and egress on every request.
- How to fix it: Batch the calls, cache the answer, or move the loop to the other side of the boundary.
PERF-04 Missing resilience policy
- Severity: Medium.
- Why it matters: Without a timeout a slow dependency exhausts the caller; retrying a non-idempotent call duplicates side effects.
- How to fix it: Set a timeout (and a circuit breaker when the target is shared); make retried operations idempotent.
PERF-05 Shared database
- Severity: Medium.
- Why it matters: A store written by several teams couples them through its schema.
- How to fix it: Give the store one owner and expose its data through an API or events.
PERF-07 Integration bypasses the platform
- Severity: Medium.
- Why it matters: Point-to-point links between applications multiply couplings and escape what the platform provides: contracts, security, monitoring and reuse.
- How to fix it: Route the integration through the platform: point the relationship at its entry (the API gateway for a call, the broker or a channel for an event, the integration service for files and batch) and add the hop from the platform to the other application, or make it pass through a channel of the platform.
Security
SEC-01 Unauthenticated entry point
- Severity: High.
- Why it matters: An entry point reachable from the internet without authentication (OWASP API2:2023).
- How to fix it: State the authentication of the target (OpenID Connect, OAuth 2.0, mutual TLS…) or of the relationship.
SEC-02 Ingress bypasses the edge
- Severity: High.
- Why it matters: Traffic from the internet should pass an API gateway, WAF or load balancer before it reaches compute.
- How to fix it: Route the call through the API gateway or WAF, and remove public IPs from compute.
SEC-03 Unencrypted boundary crossing
- Severity: High.
- Why it matters: Data crossing a boundary in clear text can be read or altered (STRIDE: tampering, information disclosure).
- How to fix it: Use TLS (HTTPS, SFTP, LDAPS, AMQPS), mTLS or an IPsec tunnel, and state the encryption.
SEC-07 PaaS reachable publicly
- Severity: Medium.
- Why it matters: The service stays reachable from the internet although its consumers are on a private network.
- How to fix it: Turn its public access off and add a private endpoint for it in the consumers' network.
Data
DATA-01 Store without backup
- Severity: High when the element is critical, else medium.
- Why it matters: Without backups data loss is unrecoverable; a regional disaster takes same-region backups with it.
- How to fix it: State the store's backup: its frequency, its retention and a copy in another region.
DATA-03 Residency violation
- Severity: High.
- Why it matters: Storing data outside its allowed geography breaches residency obligations.
- How to fix it: Move the instance to a region inside the residency, or correct the residency.
DATA-05 Async hygiene
- Severity: Medium.
- Why it matters: Poison messages block or vanish without a dead-letter channel; redelivery duplicates side effects; a one-sided channel hides a missing flow.
- How to fix it: Give the channel a dead-letter channel, make at-least-once consumers idempotent, and model the missing publisher or subscription.
Network
NET-01 Overlapping address spaces
- Severity: High when the two are connected (same network, a flow, a link or a route between them), else medium.
- Why it matters: Overlapping prefixes cannot be peered or routed to each other, and traffic to the shared range goes to only one of them.
- How to fix it: Re-address one side from a free range of the IP plan, or translate addresses (NAT) at the boundary and say so.
NET-02 Subnet outside its network
- Severity: High.
- Why it matters: A subnet must lie inside its network's address space; the deployment fails or the addresses are unreachable.
- How to fix it: Give the subnet a prefix inside the network, or add the address space to the network.
NET-03 Missing route
- Severity: High.
- Why it matters: Without a route the packets are dropped or take the default path, around the firewall that should inspect them.
- How to fix it: Add a route with the destination prefix on the subnet, its route table or its network, or peer the two networks.
NET-04 Management port exposed to the internet
- Severity: High.
- Why it matters: Administrative listeners reachable from the internet are the first target of brute-force and exploit attempts.
- How to fix it: Reach them through a bastion, a VPN or a private endpoint, and filter the port at the edge.
NET-05 Unencrypted cross-zone flow
- Severity: Medium.
- Why it matters: Segmentation limits who can reach a zone, not who can read the traffic between zones.
- How to fix it: Use TLS or mTLS between zones, or an IPsec tunnel, and state the encryption.
Operations
OPS-01 No telemetry sink
- Severity: Medium.
- Why it matters: Nobody sees failures that no logs, metrics or traces record.
- How to fix it: Deploy a monitoring element (logs, metrics and traces) in the environment.
Hygiene
HYG-01 Missing metadata
- Severity: Low.
- Why it matters: C4 notation expects every box and line to say what it is and what it runs on.
- How to fix it: Fill in the missing description or technology.
HYG-02 Vague label
- Severity: Low.
- Why it matters: A generic verb does not say what flows or why.
- How to fix it: Describe the interaction as a verb phrase, for example "Requests all-in quotes from".
HYG-03 Orphan
- Severity: Low.
- Why it matters: An unconnected element is either missing its flows or no longer part of the architecture.
- How to fix it: Connect it, or remove it.
HYG-04 Missing flow
- Severity: Medium.
- Why it matters: The model and its scenarios, processes or sign-in flow disagree.
- How to fix it: Add the missing relationship to the model, or mark an intentional step as ad hoc.
HYG-05 Naming
- Severity: Info.
- Why it matters: Duplicate names confuse readers; unexplained acronyms exclude them.
- How to fix it: Rename one of the elements, or define the acronym in the glossary.
HYG-06 Diagram quality
- Severity: Info.
- Why it matters: Crowded or mixed-level views are hard to read (C4 checklist).
- How to fix it: Split the view, or collapse or exclude elements.
Standards
STD-01 Technology past or near end of life
- Severity: High past end of life; medium past end of support; low when end of life is within 180 days.
- Why it matters: Software past its end of life gets no security fixes; past end of support, fixes become slow or paid.
- How to fix it: Upgrade to a supported version (the catalogue names the replacement), or record a time-boxed exception with compensating controls.
STD-02 Technology on hold
- Severity: Low.
- Why it matters: The workspace decided not to start new work with this technology.
- How to fix it: Choose a technology from the adopt or trial rings, or record an exception that explains why this one stays.
STD-03 Technology not on the radar
- Severity: Info.
- Why it matters: A technology the radar does not list has no ring and no lifecycle dates: nobody decided whether to use it, and its end of life goes unnoticed.
- How to fix it: Add it to the technology radar with a ring, or write the technology as the radar names it (an alias), or record an exception.
Governance
GOV-01 Expired exception
- Severity: High.
- Why it matters: An expired exception no longer covers its deviation: the risk it accepted is now unmanaged.
- How to fix it: Renew the exception with a new expiry date and check its compensating controls, close it, or remove the deviation.
GOV-02 Exception due for review
- Severity: Medium when the review date has passed; low when the exception expires within 30 days.
- Why it matters: Exceptions are time-boxed: reviewing them before they lapse keeps the register honest.
- How to fix it: Review the exception with its owner: renew it, close it, or plan the work that removes the deviation.
GOV-03 Overdue condition
- Severity: Medium.
- Why it matters: The approval rested on this condition; until it is met the approval is incomplete.
- How to fix it: Meet the condition and mark it met, agree a new due date with the board, or waive it with a note.
GOV-04 Changed since the review decision
- Severity: Info.
- Why it matters: The board approved another revision: the changes made since then have not been reviewed.
- How to fix it: Submit the changes for review, or record a new decision on this revision.
Was this page helpful?Your answer is anonymous and counts only if you accepted measurement.
What went wrong?
Don't write personal data.