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

 — 

 — 

 — 

 —