Description
This smell arises when an abstraction has dependencies (both incoming and outgoing) with a large number of other abstractions, being a single point of failure.
Context
Derived from: “Hub-like Modularization”
Cause
Functionality may gradually become more and more important and is therefore used by more and more consumers, maybe even external ones via a public service interface. To maximize reuse, service interfaces are sometimes also generalized which leads to more service consumers as well.
Consequences
The service may have increased response times and low availability. It also becomes a single point of failure in the architecture.
Detection
Check the number of incoming and outgoing relations of the corresponding cluster. If the amount is too high, report the smell.
Solution
Split according to responsibilities.
Cypher query
MATCH (a)-[r]-(b) <br /> WHERE (r.Label contains 'Aggregation' or r.Label contains 'Realization' or r.Label contains 'Composition' or r.Label contains 'Assignment') <br /> and a.ArchimateLayer = b.ArchimateLayer <br /> WITH a , collect (r) as rels , a+ collect (b) as cluster <br /> MATCH (m)-[r1]->(n) <br /> WHERE not (r1.Label contains 'Aggregation' or r1.Label contains 'Realization' or <br /> r1.Label contains 'Composition' or r1.Label contains 'Assignment') and <br /> (m in cluster and not n in cluster) <br /> WITH a , cluster, collect (r1) as fanout <br /> MATCH (m)-[r2]->(n) <br /> WHERE not (r2.Label contains 'Aggregation' or r2.Label contains 'Realization' or <br /> r2.Label contains 'Composition' or r2.Label contains 'Assignment') and <br /> (not m in cluster and n in cluster) <br /> WITH a , cluster, fanout , collect (r2) as fanin <br /> WHERE size (fanout) > $outgoingRels and size (fanin)> $incomingRels <br /> MATCH p=(a)--(b) <br /> RETURN p <br />Diagram

Aliases
Bottleneck Service
Tags
microservices, soa, business, application, technology, between elements, The Couplers, automatic detection
Query parameters
[
{
"name": "incomingRels",
"type": "number",
"default": 7,
"description": "Number of incomming relationships."
},
{
"name": "outgoingRels",
"type": "number",
"default": 7,
"description": "Number of outgoing relationships."
}
]Related smells
- Lazy Component (relates)
- Dense Structure (relates)
- Weakened Modularity (relates)