Topic · 17 lessons in 7 series
Architecture and design patterns
Patterns that keep code and systems understandable: monolith or microservices, event-driven design, creational, structural and behavioural patterns, and reliability patterns such as circuit breakers.
System DesignWhole series →
- Event-Driven Architecture for BeginnersThe order service calls seven other services and fails whenever any of them does. Event-driven architecture flips it: announce what happened and let whoever cares react. Events vs commands, the four patterns called “event-driven”, choreography vs orchestration, and sagas.8 min
- Circuit Breaker & Bulkhead PatternsTimeouts limit how long you wait per call, but not how often you keep calling a service you already know is dead. How circuit breakers fail fast and test for recovery, how bulkheads stop one dependency exhausting everything, and how to design honest fallbacks.8 min
- Monolith vs Microservices: An Honest ComparisonA five-person startup with 14 services, and a 300-engineer company with one two-hour deploy — both chose wrong. Monoliths, microservices and the modular monolith in between, how to find boundaries, how to migrate with the strangler fig, and the signals that tell you which fits.12 min
- The Complete System Design ArchitectureEvery building block from the series, assembled into one reference architecture — clients, edge, entry, services, cache, databases, object storage, search, async, analytics, external services and the cross-cutting layer — with four request flows traced through it and how it grows from one user to millions.20 min
Backend in DepthWhole series →
- Clean Code for Backends: Naming, Small Functions and BoundariesThe few clean-code rules that improve backend code reviews: pure domain logic, clear dependencies, no hidden I/O, and when not to add an abstraction.15 min
- API Folder Structure: Routes, Controllers, Services, RepositoriesLayers vs grouping by business feature, what goes in each layer, and why the request object should never reach your service layer.20 min
Scenario DebuggingWhole series →
- Frontend and React Scenario BankSixteen frontend cases: old data after a save, live dashboards that freeze, SEO on a client-rendered app, token expiry, flaky E2E tests, micro-frontends, design systems and step-by-step migrations.22 min
- Architecture, Data and Team Judgement ScenariosMonolith or microservices, rewrite or refactor, migrations with no downtime, safe backfills, multi-tenancy, tech debt, unrealistic deadlines, code-review disagreements and build vs buy.22 min
Senior Frontend DepthWhole series →
Design Patterns & LLDWhole series →
- How to Run a Low-Level Design Interview, and SOLID in Plain WordsThe five-step routine, composition over inheritance, SOLID with before and after examples, and ASCII UML.20 min
- Creational Patterns: Factory, Builder, Singleton and FriendsFactories, builder, the module singleton and its traps, prototype, and dependency injection as the practical replacement.20 min
- Structural Patterns: Adapter, Decorator, Facade, Proxy and CompositeThe intent of each pattern, how to tell them apart, and the JavaScript Proxy object.18 min
- Behavioural Patterns: Strategy, Observer, Command, State and Chain of ResponsibilityThe five main behavioural patterns plus iterator and template method, with runnable TypeScript.20 min
- Patterns You Already Use: Middleware, Hooks, Dependency Injection, and Anti-PatternsExpress and Koa middleware, EventEmitter, Redux, React, and the anti-patterns that spoil designs.20 min
- Design a Vending Machine and an Elevator (State Machines)The State pattern versus a transition table, and elevator scheduling compared by floors travelled.30 min