पाठ 25 / 25

Revision and Interview Questions

Recall the key ideas for exams and system design interviews.

Cheat sheet

Monolith: one deployable unit; simple development, testing, deployment and transactions; scales horizontally if stateless; the problem is the ball of mud, not the monolith. Microservices: independently deployable services around business capabilities, owning their data, owned by one team; benefits are mostly organisational (autonomy, independent releases) plus independent scaling and fault isolation, at the cost of the distributed systems tax. Spectrum: ball of mud → modular monolith → SOA → microservices → serverless; Conway's law and the inverse Conway manoeuvre. Deciding: monolith first for small teams and unclear domains; extract for named reasons. Modular monolith: modules with public APIs, enforced dependencies, schema per module. Boundaries: bounded contexts, capabilities, high cohesion, low coupling; avoid entity and nano-services. Data: database per service; API composition, event-carried copies, CQRS; sagas, outbox, idempotency. Communication: sync vs async; backward-compatible contracts; contract tests. Infrastructure: gateway, BFF, discovery, mesh, per-service pipelines, platform team. Migration: strangler fig, branch by abstraction, parallel run, data last; merging back is valid.

Common interview questions

Answer each with a trade-off and an example.

1. What is a monolith, and what are its real advantages?
2. Define microservices. Why is independent deployability the key property?
3. What is a modular monolith and how do you enforce its boundaries?
4. How do you find good service boundaries? What are entity services?
5. Why is a shared database an anti-pattern, and how do you query across services?
6. How do you keep data consistent without distributed transactions?
7. API gateway vs BFF vs service mesh: what does each do?
8. Explain the strangler fig pattern and how you would extract one service.
9. What is a distributed monolith, and how do you recognise one?
10. When would you merge microservices back together?

Avoid dogma in interviews

Strong answers start with "it depends on" followed by concrete factors: team size, domain clarity, scaling needs and operational maturity. Then commit to a recommendation for the scenario given.

त्वरित जाँच: A company has two engineers and an unproven product. An interviewer asks which architecture to start with. What is the strongest answer?

  • Microservices from day one so it can scale later
  • Serverless functions for every endpoint without exception
  • A service per database table
  • A modular monolith, extracting services later when specific pressures appear
Answer

A modular monolith, extracting services later when specific pressures appear — A modular monolith keeps change cheap now while preserving clean seams for later extraction.