neha sharma

Advanced System Design Topics

1 min read

Once you've got the basics down (like load balancing, caching, databases), it’s time to explore some of the deeper, more nuanced parts of system design.

Here are some advanced topics I’ve been diving into:

1 . Event-driven architecture: More scalable, more async, and surprisingly tricky to debug.

2 . Sharding & Replication: How do you split your data across nodes without making things terrible?

3 . Distributed Transactions: Two-phase commit, sagas, and knowing when to avoid them entirely.

4 . Backpressure & Rate Limiting: Especially in APIs and queues – super important for system resilience.

5 . CAP Theorem Trade-offs: Not just the theory, but how real systems handle consistency vs availability.

6 . Circuit Breakers, Retries & Timeouts: All the hidden gems of keeping systems stable when stuff inevitably fails.

These are the concepts that separate a working system from a resilient one. I like to approach these by designing real-world systems and seeing how these ideas play out.