1. Introduction
  2. 0. Chapter 0 - Zero
  3. Why
  4. Rationale
  5. 1. Chapter 1 - Philosophy
  6. Why
  7. Crystal Ball
  8. Defensive Programming
  9. Doing Hard Things
  10. Frontend vs Backend
  11. Open Source First
  12. Service Orientation
  13. Protect Your Time
  14. 2. Chapter 2 - Anti-Patterns
  15. Why
  16. Tech Debt Plague
  17. Ignore Culture
  18. Stagnation
  19. Requirements
  20. 3. Chapter 3 - Dilemmas
  21. Why
  22. Discovery vs Delivery
  23. Move Fast vs Do It Right
  24. Build vs Buy
  25. Decide or Wait
  26. 4. Chapter 4 - Properties
  27. Why
  28. Anti-Fragility
  29. State of the Art
  30. Scalability
  31. Observability
  32. Stability
  33. Secure
  34. 5. Chapter 5 - Practices
  35. Why
  36. Attention to Detail
  37. Architecture Review
  38. Design First
  39. Ownership
  40. Reading Code
  41. Monthly Review
  42. Working in the Trenches
  43. 6. Chapter 6 - Concepts
  44. Why
  45. ACID
  46. Authentication & Authorization
  47. JWT
  48. BASE
  49. Idempotency
  50. Optimistic vs Pessimistic Locking
  51. Partition
  52. Schema Evolution
  53. Source of Truth
  54. Stateless vs Stateful Services
  55. 7. Chapter 7 - Patterns
  56. Why
  57. API Gateway
  58. BFF Pattern
  59. Cache
  60. Connection Pool
  61. Feature Flags
  62. Load Balancer
  63. Message Patterns
  64. Message ID
  65. Pagination
  66. Queue
  67. Retry
  68. Web Hook
  69. 8. Chapter 8 - Tools
  70. Why
  71. Diagramming Tools
  72. Writing Tools
  73. Thinking Tools
  74. 9. Chapter 9 - Epilogue
  75. Epilogue
  76. Resources
  77. How I Wrote The Book
  78. Changelog
  79. References
  80. Glossary
  81. Index