# Architecture principles whose scope is contract_compatibility

> 20 records

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

## Entries

- [Schema Drift](https://banes-lab.com/records/architecture/schema-drift.md): A defect in which the producers, consumers and stores of one payload evolve its shape independently until its meaning diverges.
- [Implicit Contract](https://banes-lab.com/records/architecture/implicit-contract.md): A defect in which a boundary's assumptions, including the shape and meaning of the data it passes, live in behavior, naming or ordering rather than in a declared contract.
- [Unobservable Failure](https://banes-lab.com/records/architecture/unobservable-failure.md): A defect in which an operation can fail without leaving a log, metric, trace or error contract.
- [Unversioned Breaking Change](https://banes-lab.com/records/architecture/unversioned-breaking-change.md): A defect in which a public contract changes incompatibly without a version, a deprecation path or a compatibility test.
- [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.
- [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.
- [Data Clumps](https://banes-lab.com/records/architecture/data-clumps.md): A defect in which the same group of values travels together without being named as one type.
- [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.
- [Over-Abstraction](https://banes-lab.com/records/architecture/over-abstraction.md): A defect in which layers, interfaces and factories outnumber the variation they serve.
- [Pattern Cargo Cult](https://banes-lab.com/records/architecture/pattern-cargo-cult.md): A defect in which a pattern's name and shape are copied without the forces, contracts and checks that make it work.
- [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.
- [Chatty Interface](https://banes-lab.com/records/architecture/chatty-interface.md): A defect in which one operation needs many small remote calls.
- [Silent Data Corruption](https://banes-lab.com/records/architecture/silent-data-corruption.md): A defect in which invalid data is accepted, transformed or stored without any check noticing.
- [Read-Your-Writes Violation](https://banes-lab.com/records/architecture/read-your-writes-violation.md): A defect in which a writer reads back a stale copy of what it has just written.
- [Irreversible Migration](https://banes-lab.com/records/architecture/irreversible-migration.md): A defect in which a schema or data change can neither run beside the old version nor be rolled back.
- [Test Pyramid Inversion](https://banes-lab.com/records/architecture/test-pyramid-inversion.md): A defect in which a test suite relies mainly on slow end-to-end tests, with few unit and contract tests.
- [Mock Mirage](https://banes-lab.com/records/architecture/mock-mirage.md): A defect in which tests assert calls on mocks rather than observable behavior or contracts.
- [Prompt Sprawl](https://banes-lab.com/records/architecture/prompt-sprawl.md): A defect in which prompts, model parameters and output schemas are scattered through code without versions or evaluation.
