Competencies: Software Architecture > Distributed Systems
Distributed Systems
Body of Knowledge
| Topic | Description | Relevance | Career Tracks |
|---|---|---|---|
CAP Theorem |
Consistency, Availability, Partition tolerance tradeoffs in distributed systems |
Critical |
Software Architect, Backend Developer, Data Engineer |
Consensus Algorithms |
Paxos, Raft, leader election, distributed agreement protocols |
High |
Software Architect, Backend Developer |
Distributed Transactions |
Two-phase commit, saga pattern, compensating transactions, idempotency |
Critical |
Software Architect, Backend Developer |
Eventual Consistency |
Consistency models, conflict resolution, CRDTs, vector clocks |
Critical |
Software Architect, Backend Developer, Data Engineer |
Distributed Caching |
Redis Cluster, Memcached, cache coherence, distributed cache invalidation |
High |
Software Architect, Backend Developer, SRE |
Message Queues |
Kafka, RabbitMQ, SQS, message ordering, delivery guarantees, dead letter queues |
Critical |
Software Architect, Backend Developer, Data Engineer |
Service Discovery |
Consul, etcd, DNS-based discovery, health checking, load balancing |
High |
Software Architect, DevOps Engineer, SRE |
Distributed Tracing |
Jaeger, Zipkin, correlation IDs, span propagation, trace analysis |
High |
Software Architect, SRE, DevOps Engineer |
Network Partitions |
Split-brain scenarios, partition handling, fencing, quorum systems |
High |
Software Architect, SRE |
Distributed Locking |
Redlock, ZooKeeper locks, lease-based locking, lock contention |
High |
Software Architect, Backend Developer |
Clock Synchronization |
NTP, logical clocks, Lamport timestamps, hybrid logical clocks |
Medium |
Software Architect, Backend Developer |
Replication Strategies |
Leader-follower, multi-leader, leaderless replication, conflict resolution |
Critical |
Software Architect, Data Engineer, DBA |
Personal Status
| Topic | Level | Evidence | Active Projects | Gaps |
|---|---|---|---|---|
To be populated |
— |
— |
— |
— |