• Stars
    star
    117
  • Rank 301,828 (Top 6 %)
  • Language
  • License
    Creative Commons ...
  • Created over 4 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A collection of awesome things related to architecture

Awesome Architecture Awesome

This document starts with a list of concepts and foundations, followed by jobs-to-be-done.

Concepts

  • Application Lifecycle Management (ALM)
  • Architecturally significant requirements criteria: business value/risk, stakeholder concern, quality level, external dependencies, cross-cutting, first-of-a-kind, source of problems on past projects
  • Architectural decision records (ADRs): Records that support team alignment, document strategic directions for a project or product, and reduce recurring and time-consuming decision-making efforts
  • Continuous Configuration values often fall into two groups: those that modify operational behavior of an application—such as throttling, limits, connection limits, or logging verbosity—and those that control FAC (Feature Access Control), including feature flags, A/B testing, and user allow/deny lists
  • Coupling: Coupling describes the independent variability of connected systems, i.e., whether a change in System A has an effect on System B. If it does, A and B are coupled
  • Coupling facets: 1/ Technology (Java vs. C++, Kubernetes, PostgreSQL) 2/ Location (IP addresses, DNS) 3/ Data Format (Binary, XML, JSON, protobuf, Avro) 4/ Data Type (int16, int32, string, UTF-8, null, empty) 5/ Semantic (Name, Middlename, ZIP) 6/ Temporal (sync, async) 7/ Interaction Style (messaging, RPC, query, GraphQL) 8/ Conversation (pagination, caching, retries)
  • Declarative provisioning not equal to Declarative language (video, slides)
  • Event-Driven Architecture patterns: 1/ Event Notification 2/ Event-carried State Transfer 3/ Event Sourcing 4/ Command and Query Responsibility Segregation
  • Feature Flags
  • GitOps: 1/ Declarative 2/ Versioned and Immutable 3/ Pulled Automatically 4/ Continuously Reconciled
  • Platform: a set of standardized elements that provide value but do not presuppose all problems
  • SaaS Architecture Fundamentals
  • Software Boundaries or "Fracture Planes": 1/ Business Domain Bounded Context 2/ Regulatory Compliance 3/ Change Cadence 4/ Team Location 5/ Risk 6/ Performance Isolation 7/ Technology 8/ User Personas
  • Software delivery performance four key metrics: 1/ Cycle Time (Change Lead Time) 2/ Deployment Frequency 3/ Change Failure Rate (CFR) 4/ Mean Time to Recovery (MTTR)

Foundations

Organizational culture, structure, and processes

Working backwards

Product-market fit

Profitable growth

Business metrics

Business and technology alignment

Product

Compliance

Technology landscape

Frameworks

Cross-cutting concerns

Landing zone

Platform

Jobs-to-be-done

Access control and isolation

API

Authentication and authorization

Configuration

Deployment

Development

Encryption

Extensibility

  • Supporting extensibility in SaaS environments (video, slides)

Frontend

Hybrid architecture

Integration patterns

Internet of Things (IoT)

Machine learning

Migrations

Multi-region

Networking

Observability

Operations

Sharding and partitioning data

Tenant costs

Tenant management

Testing