C2 Wiki - Code Smell

Code Smells

Bad abstractions

Application architectures with layers for the sake of having layers

Poorly factored application domains

You find yourself having to query multiple entities together for any operation involving any one of the entities. Entities may exist within the same domain, requiring multiple DB queries, or even worse, on separate domains isolated under separate APIs requiring multiple http requests.

This dependency can be uni-directional, e.g. queries involving Entity A always need information about Entity B, but not vice versa.