1. Why Are Abstractions Important?
Abstractions simplify complex systems by hiding lower-level implementation details. They:
Allow developers to focus on solving higher-level problems.
Enable modularity: changes in one layer don’t affect others.
Promote reuse, scalability, and testability.
Are foundational in both OS (e.g., file systems) and distributed systems (e.g., databases, RPC).
2. Network Abstractions: Remote Procedure Calls (RPC)
RPC enables communication between services across a network, hiding the complexity of:
Data serialization/deserialization
Network communication protocols
Retry logic and error handling
Advantages:
Makes remote calls look like local method calls.
Reduces boilerplate for service-to-service interactions.
Popular frameworks: gRPC, Thrift, Apache Avro.
Caveats:
Network issues can introduce latency/failures.
RPC is not the same as function calls: developers must account for distributed system challenges (timeouts, retries, etc.).
3. Spectrum of Consistency Models
Consistency in distributed systems balances availability, latency, and correctness.
Models include:
Strong Consistency – Reads always reflect latest writes. Simplifies reasoning but affects availability.
Eventual Consistency – All replicas eventually converge. Faster but may show stale data.
Causal Consistency – Preserves cause-effect relationships.
Read-Your-Writes / Monotonic Reads – Guarantees that a user's session observes its own updates.
Tradeoffs: CAP theorem dictates that in network partitions, you must choose between consistency and availability.
4. The Spectrum of Failure Models
Failures are inevitable in distributed systems. Types include:
Crash Failures – Server stops working (e.g., power loss).
Omission Failures – Messages dropped or not sent.
Timing Failures – Response not within expected time.
Byzantine Failures – Arbitrary/malicious behavior.
Key takeaways:
Design for failure: Use timeouts, retries, replication, and monitoring.
Systems must tolerate partial failures without breaking completely.
Consensus protocols (e.g., Paxos, Raft) handle agreement in unreliable environments.
Top comments (1)
Some comments may only be visible to logged-in visitors. Sign in to view all comments.