Contracts / Interfaces / Compatibility

Kind: category

Record: architecture-category:contracts-interfaces-compatibility

Canonical: Ontology

The Contracts / Interfaces / Compatibility category holds 20 architecture principles.

Listed in Principle categories, after Causality / Ordering / Distributed Time and before Control / Coordination / Centralization.

Principle

Layer

Linked from

Contracts / Interfaces / Compatibility

Every principle in this category is listed as a record. Each record carries its kind, its severity, the scopes it applies at and the layer it lives in, then the edge relations that join it to other records, the records that point back at it, the contracts that answer to it and the tensions it takes part in. The descriptors say how it is violated, detected, measured, repaired and enforced. Where the record carries one, an exemplar shows the shape before and after the principle is applied.

Relations diagram
The relations inside this category.
flowchart LR
    n_design_by_contract["Design by Contract"]
    n_explicit_contracts["Explicit Contracts"]
    n_stable_interfaces["Stable Interfaces"]
    n_interface_based_design["Interface-Based Design"]
    n_contract_first_design["Contract-First Design"]
    n_api_contract["API Contract"]
    n_service_contract["Service Contract"]
    n_data_contract["Data Contract"]
    n_schema_contract["Schema Contract"]
    n_semantic_contracts["Semantic Contracts"]
    n_preconditions["Preconditions"]
    n_postconditions["Postconditions"]
    n_invariant["Invariant"]
    n_backward_compatibility["Backward Compatibility"]
    n_forward_compatibility["Forward Compatibility"]
    n_versioning["Versioning"]
    n_protocol_compatibility["Protocol Compatibility"]
    n_interoperability["Interoperability"]
    n_uniform_interface["Uniform Interface"]
    n_consumer_driven_contracts["Consumer-Driven Contracts"]
    n_design_by_contract --> n_preconditions
    n_design_by_contract --> n_postconditions
    n_design_by_contract --> n_invariant
    n_explicit_contracts --> n_stable_interfaces
    n_explicit_contracts --> n_interoperability
    n_explicit_contracts --> n_contract_first_design
    n_stable_interfaces --> n_versioning
    n_stable_interfaces --> n_backward_compatibility
    n_interface_based_design --> n_stable_interfaces
    n_contract_first_design --> n_explicit_contracts
    n_contract_first_design --> n_schema_contract
    n_contract_first_design --> n_interoperability
    n_contract_first_design --> n_backward_compatibility
    n_api_contract --> n_versioning
    n_api_contract --> n_stable_interfaces
    n_api_contract --> n_interoperability
    n_service_contract --> n_api_contract
    n_data_contract --> n_interoperability
    n_schema_contract --> n_data_contract
    n_preconditions --> n_design_by_contract
    n_postconditions --> n_invariant
    n_backward_compatibility --> n_versioning
    n_backward_compatibility --> n_stable_interfaces
    n_versioning --> n_stable_interfaces
    n_versioning --> n_backward_compatibility
    n_protocol_compatibility --> n_versioning
    n_protocol_compatibility --> n_interoperability
    n_consumer_driven_contracts --> n_explicit_contracts
    n_consumer_driven_contracts --> n_backward_compatibility
    n_consumer_driven_contracts --> n_contract_first_design