Wrong Cuts

Written by

in

Description

Services are split on the basis of technical layers (presentation, business, and data layers) instead of business capabilities. Transactions extend across service boundaries and are not isolated inside services.

Context

Derived from: “Wrong Cuts”

Cause

Rapidly evolving business processes may result in such transactions. Starting the design of an EA completely upfront without keeping some design decisions open may also lead to this antipattern.

Consequences

Such a wrong separation of concerns can lead to increased data-splitting complexity. Moreover, this may cause ripple effects on changes and therefore decreases maintainability. Lastly, it may impact performance, if several services are needed to fulfill an abstraction.

Detection

We can transfer the concept of “Wrong Cuts” into the EA domain by looking for behaviours or business capabilities that are implemented by more than one component. The “Wrong Cuts” EA Smells can occur in the ArchiMate once two or more “Application Components” implement the same behavior.

Solution

Perform a clear analysis of business processes and the need for resources and use this knowledge to refactor the services according to bounded contexts.

Cypher query

MATCH (c:ApplicationComponent)-[r:RealizationRelationship]-(f:ApplicationFunction|ApplicationProcess|ApplicationService) <br /> WITH f, COUNT(c) AS compCount <br />  MATCH p = (c:ApplicationComponent)-[r:RealizationRelationship]-(f:ApplicationFunction|ApplicationProcess|ApplicationService) <br /> WHERE compCount> 1 <br />RETURN p

Cypher count query

MATCH (c:ApplicationComponent)-[r:RealizationRelationship]-(f:ApplicationFunction|ApplicationProcess|ApplicationService) WITH f, COUNT(c) AS  compCount MATCH p = (c:ApplicationComponent)-[r:RealizationRelationship]-(f:ApplicationFunction|ApplicationProcess|ApplicationService) WHERE compCount> 1  RETURN COUNT (distinct f)

Diagram

Diagram for Wrong Cuts

Tags

microservices, business, application, technology, cohesion, The Couplers

Related smells

All smells