Competencies: Software Architecture > System Design

System Design

Body of Knowledge

Topic Description Relevance Career Tracks

Scalability Patterns

Horizontal vs vertical scaling, load balancing, auto-scaling strategies

Critical

Software Architect, SRE, DevOps Engineer

High Availability Design

Redundancy, failover, fault tolerance, disaster recovery planning

Critical

Software Architect, SRE, Infrastructure Engineer

Microservices Architecture

Service decomposition, bounded contexts, inter-service communication

Critical

Software Architect, Backend Developer, DevOps Engineer

Monolithic Architecture

Modular monoliths, when to use, migration strategies to microservices

High

Software Architect, Backend Developer

Event-Driven Architecture

Event buses, pub/sub, message brokers, eventual consistency

Critical

Software Architect, Backend Developer

Service Mesh

Istio, Linkerd, sidecar proxies, traffic management, observability

High

Software Architect, DevOps Engineer, SRE

Caching Strategies

Cache-aside, write-through, write-behind, cache invalidation patterns

Critical

Software Architect, Backend Developer

Database Scaling

Sharding, replication, read replicas, connection pooling

Critical

Software Architect, Data Engineer, DBA

Rate Limiting & Throttling

Token bucket, leaky bucket, sliding window, circuit breakers

High

Software Architect, Backend Developer, SRE

Capacity Planning

Load testing, performance modeling, resource estimation, growth projections

High

Software Architect, SRE, Infrastructure Engineer

Security Architecture

Defense in depth, zero trust, security boundaries, threat modeling

Critical

Software Architect, Security Engineer

Cost Optimization

Resource right-sizing, reserved capacity, spot instances, architectural tradeoffs

High

Software Architect, Cloud Architect, FinOps

Personal Status

Topic Level Evidence Active Projects Gaps

To be populated

 — 

 — 

 — 

 —