
What is System Design? Understanding the Fundamentals
Introduction to system design fundamentals covering core concepts, design principles, thinking patterns, and the philosophy behind building large-scale systems.

Introduction to system design fundamentals covering core concepts, design principles, thinking patterns, and the philosophy behind building large-scale systems.

In my career spanning financial market data platforms, telecom systems, insurance quoting systems and energy billing, I’ve come to appreciate that the craft of true software engineering isn’t about avoiding complexity, it is about choosing the right kind of complexity. In the world of event-driven architectures (EDA), when a microservice needs to change its state and notify the rest of the world of this event, it faces a fundamental engineering challenge, known as the Dual Write Problem. This is the Achilles’ heel of distributed systems: ensuring that a local database update and an external event publication are an atomic pair. This operation has to be atomic. The write-to-the-database and the event publication has to be either both successful or both fail. One cannot succeed on its own as it would break consistency. ...

Understanding abstractions in system design covering abstraction layers, APIs, interfaces, and how they help manage complexity in distributed systems.