Solution approaches are architectural tactics and patterns that help achieve specific quality attributes. They bridge the gap from quality requirements to concrete implementation decisions. Use dimension explorer for guided filtering, dimension list for full grouped browsing, and keyword search for quick text-based lookup.

We currently explain 21 such approaches, covering 7 dimensions.

efficient

4 approaches, sorted A-Z
  • Asynchronous Messaging
    supports: responsiveness, throughput, scalability, loose coupling, lead time for changes
  • CQRS
    supports: scalability, throughput, performance, extensibility, responsiveness
  • Caching
    supports: performance, scalability, responsiveness
  • Database Sharding
    supports: scalability, capacity, throughput, availability, distributability

flexible

4 approaches, sorted A-Z
  • Asynchronous Messaging
    supports: responsiveness, throughput, scalability, loose coupling, lead time for changes
  • CQRS
    supports: scalability, throughput, performance, extensibility, responsiveness
  • Feature Toggles
    supports: deployability, flexibility, testability, changeability, modifiability
  • Plugin Architecture
    supports: extensibility, modifiability, reusability, availability, security

maintainable

0 approaches, sorted A-Z

No approaches in this dimension yet.

operable

4 approaches, sorted A-Z
  • API Gateway
    supports: security, interoperability, observability, scalability, availability, modularity
  • Circuit Breaker
    supports: resilience, stability, fault tolerance, availability
  • Feature Toggles
    supports: deployability, flexibility, testability, changeability, modifiability
  • Secret Management
    supports: security, confidentiality, access control, auditability, compliance, operability

reliable

8 approaches, sorted A-Z
  • API Gateway
    supports: security, interoperability, observability, scalability, availability, modularity
  • Bulkheads
    supports: fault tolerance, availability, resilience, stability, graceful degradation
  • Caching
    supports: performance, scalability, responsiveness
  • Circuit Breaker
    supports: resilience, stability, fault tolerance, availability
  • Database Sharding
    supports: scalability, capacity, throughput, availability, distributability
  • Fail-Safe Defaults
    supports: safety, fault tolerance, fail safe, robustness, predictability, controllability
  • Rate Limiting
    supports: security, intrusion prevention, availability, resilience, stability
  • Watchdog Supervision
    supports: availability, fault tolerance, recoverability, self healing, mean time to recovery, safety

safe

3 approaches, sorted A-Z
  • Fail-Safe Defaults
    supports: safety, fault tolerance, fail safe, robustness, predictability, controllability
  • Safety Interlocks
    supports: safety, fail safe, controllability, integrity, hazard warning, user error protection
  • Watchdog Supervision
    supports: availability, fault tolerance, recoverability, self healing, mean time to recovery, safety

secure

8 approaches, sorted A-Z

suitable

0 approaches, sorted A-Z

No approaches in this dimension yet.

usable

2 approaches, sorted A-Z

Dimensions and Solution Approaches

Approaches tagged with efficient

  • Asynchronous Messaging
    supports: responsiveness, throughput, scalability, loose coupling, lead time for changes
  • CQRS
    supports: scalability, throughput, performance, extensibility, responsiveness
  • Caching
    supports: performance, scalability, responsiveness
  • Database Sharding
    supports: scalability, capacity, throughput, availability, distributability

Approaches tagged with flexible

  • Asynchronous Messaging
    supports: responsiveness, throughput, scalability, loose coupling, lead time for changes
  • CQRS
    supports: scalability, throughput, performance, extensibility, responsiveness
  • Feature Toggles
    supports: deployability, flexibility, testability, changeability, modifiability
  • Plugin Architecture
    supports: extensibility, modifiability, reusability, availability, security

Approaches tagged with maintainable

No approaches in this dimension yet.

Approaches tagged with operable

  • API Gateway
    supports: security, interoperability, observability, scalability, availability, modularity
  • Circuit Breaker
    supports: resilience, stability, fault tolerance, availability
  • Feature Toggles
    supports: deployability, flexibility, testability, changeability, modifiability
  • Secret Management
    supports: security, confidentiality, access control, auditability, compliance, operability

Approaches tagged with reliable

  • API Gateway
    supports: security, interoperability, observability, scalability, availability, modularity
  • Bulkheads
    supports: fault tolerance, availability, resilience, stability, graceful degradation
  • Caching
    supports: performance, scalability, responsiveness
  • Circuit Breaker
    supports: resilience, stability, fault tolerance, availability
  • Database Sharding
    supports: scalability, capacity, throughput, availability, distributability
  • Fail-Safe Defaults
    supports: safety, fault tolerance, fail safe, robustness, predictability, controllability
  • Rate Limiting
    supports: security, intrusion prevention, availability, resilience, stability
  • Watchdog Supervision
    supports: availability, fault tolerance, recoverability, self healing, mean time to recovery, safety

Approaches tagged with safe

  • Fail-Safe Defaults
    supports: safety, fault tolerance, fail safe, robustness, predictability, controllability
  • Safety Interlocks
    supports: safety, fail safe, controllability, integrity, hazard warning, user error protection
  • Watchdog Supervision
    supports: availability, fault tolerance, recoverability, self healing, mean time to recovery, safety

Approaches tagged with secure

Approaches tagged with suitable

No approaches in this dimension yet.

Keyword Search

Search by approach name, dimensions, supported qualities, trade-offs, and intent text.

latencyresiliencerolloutaccessibilityscalability

API Gateway

dimensions: secure, operable, reliable
supports: security, interoperability, observability, scalability, availability, modularity
trade-offs: latency, operability, loose coupling, availability

Asynchronous Messaging

dimensions: efficient, flexible
supports: responsiveness, throughput, scalability, loose coupling, lead time for changes
trade-offs: eventual consistency, determinism, observability, code complexity, latency

Bulkheads

dimensions: reliable
supports: fault tolerance, availability, resilience, stability, graceful degradation
trade-offs: resource utilization, capacity, code complexity, observability

CQRS

dimensions: efficient, flexible
supports: scalability, throughput, performance, extensibility, responsiveness
trade-offs: eventual consistency, code complexity, operability, observability

Caching

dimensions: efficient, reliable
supports: performance, scalability, responsiveness
trade-offs: consistency, code complexity, memory usage, observability

Circuit Breaker

dimensions: reliable, operable
supports: resilience, stability, fault tolerance, availability
trade-offs: maintainability, latency

Database Sharding

dimensions: efficient, reliable
supports: scalability, capacity, throughput, availability, distributability
trade-offs: consistency, code complexity, operability, latency

Encryption at Rest + in Transit

dimensions: secure
supports: confidentiality, data integrity, data protection, privacy, compliance
trade-offs: performance, operability, code complexity

Fail-Safe Defaults

dimensions: safe, reliable
supports: safety, fault tolerance, fail safe, robustness, predictability, controllability
trade-offs: availability, graceful degradation, recoverability

Feature Toggles

dimensions: flexible, operable
supports: deployability, flexibility, testability, changeability, modifiability
trade-offs: maintainability, code complexity, reliability, observability

Fine-Grained Authorization (RBAC/ABAC)

dimensions: secure
supports: security, access control, confidentiality, integrity, compliance, policy enforcement, auditability
trade-offs: code complexity, operability, latency, usability

Least Privilege

dimensions: secure
supports: security, confidentiality, integrity, access control, compliance
trade-offs: usability, operability, code complexity

Plugin Architecture

dimensions: flexible
supports: extensibility, modifiability, reusability, availability, security
trade-offs: security, performance, maintainability

Progressive Disclosure

dimensions: usable
supports: usability, learnability, accessibility, user experience
trade-offs: completeness, functionality, observability

Rate Limiting

dimensions: secure, reliable
supports: security, intrusion prevention, availability, resilience, stability
trade-offs: usability, operability, latency, code complexity

Responsive Design

dimensions: usable
supports: usability, accessibility, adaptability
trade-offs: performance, maintainability, observability

Safety Interlocks

dimensions: safe
supports: safety, fail safe, controllability, integrity, hazard warning, user error protection
trade-offs: availability, usability, code complexity

Secret Management

dimensions: secure, operable
supports: security, confidentiality, access control, auditability, compliance, operability
trade-offs: availability, latency, code complexity

Strong Authentication (MFA / OIDC)

dimensions: secure
supports: security, authenticity, access control, accountability, non repudiation, compliance
trade-offs: usability, availability, operability

Watchdog Supervision

dimensions: safe, reliable
supports: availability, fault tolerance, recoverability, self healing, mean time to recovery, safety
trade-offs: availability, determinism, observability, code complexity