There are many good resources related to patterns in distributed systems. One of my favorite resources is found at Patterns of Distributed Systems and there is a recent book published. While the resource explains very well what problems are being solved and how to implement the pattern, here I am aiming to tie each pattern with the systems that leverage it.

Leases → (Memcache, Zanzibar, DynamoDB Paxos, Raft)

Cross-request adaptation → (Google Search, Zanzibar)

Request hedging → (Google Search, Meta Memcache, Zanzibar)

Replicate globally, and serve requests locally → (Zanzibar, Memcache, TaoDB)

Scatter-gather → (Elastic search, Search-engines)

Rate limiting techniques

Global total ordering → (Spanner, FoundationDB, CockroachDB)

Two-Phase Commit

Optimistic Concurrency Control (OCC)

Multiversion concurrency control (MVCC) → (Spanner, DynamoDB)

Gossip Protocol → (DynamoDB, Redis)

Peer-to-peer choreography

Hinted Handoff → (DynamoDB, Cassandra, ScyllaDB)

Push vs Pull protocol

Paxos & Multi-Paxos

Centralized vs Decentralized systems