# Architecture principles whose scope is modularity

> 21 records

This index as JSON: https://banes-lab.com/json/api/facets/architecture/scope/modularity

## Entries

- [Big Ball of Mud](https://banes-lab.com/records/architecture/big-ball-of-mud.md): A defect in which a system has no discernible boundaries, so any part can depend on and change any other.
- [God Object](https://banes-lab.com/records/architecture/god-object.md): A defect in which one object accumulates unrelated responsibilities and becomes the default place for every change.
- [Concrete Coupling](https://banes-lab.com/records/architecture/concrete-coupling.md): A defect in which high-level policy depends directly on concrete implementations instead of on abstractions.
- [Shared Mutable State](https://banes-lab.com/records/architecture/shared-mutable-state.md): A defect in which writable state is shared across modules with no owner and no synchronization.
- [Boundary Leakage](https://banes-lab.com/records/architecture/boundary-leakage.md): A defect in which internal, persistence or vendor types cross an architectural boundary.
- [Distributed Monolith](https://banes-lab.com/records/architecture/distributed-monolith.md): A defect in which services are deployed separately but still share data, transactions and release cycles.
- [Shotgun Surgery](https://banes-lab.com/records/architecture/shotgun-surgery.md): A defect in which one responsibility is scattered so that a single change needs edits in many files.
- [Divergent Change](https://banes-lab.com/records/architecture/divergent-change.md): A defect in which one module changes for many unrelated reasons.
- [Feature Envy](https://banes-lab.com/records/architecture/feature-envy.md): A defect in which one module mostly works on another module's data instead of its own.
- [Inappropriate Intimacy](https://banes-lab.com/records/architecture/inappropriate-intimacy.md): A defect in which modules depend on each other's internal structure or private state.
- [Middle Man](https://banes-lab.com/records/architecture/middle-man.md): A defect in which a module delegates almost every call without adding behavior of its own.
- [Long Parameter List](https://banes-lab.com/records/architecture/long-parameter-list.md): A defect in which a signature grows so many parameters that a caller can no longer read or validate it.
- [Premature Abstraction](https://banes-lab.com/records/architecture/premature-abstraction.md): A defect in which a shared abstraction is extracted before its variation is understood, so it fits no caller well.
- [Temporal Coupling](https://banes-lab.com/records/architecture/temporal-coupling.md): A defect in which operations must be called in an undocumented order to work.
- [Anemic Domain Model](https://banes-lab.com/records/architecture/anemic-domain-model.md): A defect in which domain objects hold data only, while their rules live in services and handlers.
- [Utility Dump](https://banes-lab.com/records/architecture/utility-dump.md): A defect in which unrelated helpers accumulate in a generic utility module that no one owns.
- [Vendor Lock-In Leakage](https://banes-lab.com/records/architecture/vendor-lock-in-leakage.md): A defect in which an external system's or a vendor's APIs, errors and models spread through application and domain code, so their changes ripple across it.
- [Circular Dependency](https://banes-lab.com/records/architecture/circular-dependency.md): A defect in which modules depend on each other, directly or through others, so none can change alone.
- [Synchronous Chain Trap](https://banes-lab.com/records/architecture/synchronous-chain-trap.md): A defect in which one request depends on a deep chain of blocking synchronous remote calls, so one slow link stalls the whole request.
- [Chatty Interface](https://banes-lab.com/records/architecture/chatty-interface.md): A defect in which one operation needs many small remote calls.
- [Secret Sprawl](https://banes-lab.com/records/architecture/secret-sprawl.md): A defect in which credentials and keys are stored across code, logs and configuration.
