Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Changelog

All notable changes to this project will be documented in this file.

[1.0.8] - 2025-11-28

Added

  • PROTECT_YOUR_TIME.md: Added Gemini 3 Banana Pro illustration for the Protect Your Time chapter

Changed

  • INDEX.md: Corrected spelling, updated naming (Practices, Message ID), added How I Wrote the Book, and refreshed tool labels
  • GLOSSARY.md, REFERENCES.md, and other markdown files: Minor grammar and consistency fixes across terms and navigation content
  • TECH_DEBT_PLAGUE.md: Clarified wording around tests and Jira references

[1.0.7] - 2025-11-06

Added

  • JWT.md: Comprehensive documentation on JSON Web Tokens including structure, flow, and security best practices
  • GLOSSARY.md: Added JSON Web Token (JWT) entry with definition and explanation
  • INDEX.md: Added JWT entry in alphabetical index and Chapter 6 concepts section
  • REFERENCES.md: Added JWT.io debugger tool and Wikipedia JWT reference

[1.0.6] - 2025-11-02

Added

  • HOW_I_WROTE_THE_BOOK.md: Behind the scenes of the book creation process

Changed

  • GLOSSARY.md: Added Business Logic, Discovery Work, and Experimentation terms

[1.0.5] - 2025-10-31

Added

Pattern files - Added “Why you need to know this?” sections with practical guidance:

  • WEB_HOOK.md: Added section explaining use cases for async processing notifications and 3rd party integrations, emphasizing event-driven architecture over polling
  • RETRY.md: Added section on implementing retries with timeouts and progressive backoff for resilience, with AWS SDK examples
  • QUEUE.md: Added section covering three scenarios: async processing, system decoupling, and HTTP server request management, plus monitoring guidance for queue depth and processing rates
  • PAGINATION.md: Added section distinguishing when to use pagination vs big data patterns like CDC, Event Sourcing with Kafka, addressing findAll and Select * anti-patterns
  • MESSAGE_PATTERNS.md: Added section explaining Publish/Subscribe for event-driven architectures and Point-to-Point for task distribution
  • MESSAGE_ID.md: Added section emphasizing necessity for distributed systems and messaging/Kafka implementations
  • LB.md: Added section explaining load balancer requirements for backend services with AWS ALB/NLB examples
  • FEATURE_FLAGS.md: Added section with best practices including time-to-live, naming conventions, avoiding nesting, testing requirements, and catalog documentation
  • CONNECTION_POOL.md: Added section on database connection pooling necessity and connection reuse benefits
  • CACHE.md: Added section on TTL invalidation strategies, protecting against database latency, and cache pre-warming techniques
  • BFF_PATTERN.md: Added section on TypeScript/NodeJS/Deno/Bun implementations, emphasizing separation of rendering logic from business logic
  • API_GATEWAY.md: Added section covering three scenarios: public-facing APIs, cross-cloud communication, and monolith-to-microservices migrations

References and resources:

  • REFERENCES.md: Added Grammarly under Writing Tools section
  • REFERENCES.md: Added Figma under Design Tools section
  • REFERENCES.md: Added V Language, Gleam, Deno, and Bun homepages under Language & Runtime Homepages section
  • REFERENCES.md: Added AWS re:Invent 2022 keynote with Dr. Werner Vogels under Videos & Media section
  • REFERENCES.md: Added Mark Zuckerberg videos on product strategy and fast learning cycles under Videos & Media section

Changed

Grammar and spelling corrections across multiple files:

  • introduction.md: Changed “guidance about Software Architecture” to “guidance on Software Architecture”
  • DEFENSIVE.md: Fixed typo “ProducService” to “ProductService” in Scala code example
  • WORKING_ON_TRENCHES.md: Changed “frontend line” to “front line”
  • OPLOCKING.md: Improved grammar in React re-rendering scenario explanation
  • API_GATEWAY.md: Fixed “todo” to “to do”, “Comunication” to “Communication”, “departaments” to “departments”
  • BFF_PATTERN.md: Fixed “mmobile” to “mobile”, “pattrern” to “pattern”
  • CACHE.md: Fixed “simmple” to “simple”, “spires” to “expires”, “now only” to “not only”, “amd” to “and”
  • CONNECTION_POOL.md: Changed “everything a backend system need access” to “every time a backend system needs to access”
  • FEATURE_FLAGS.md: Fixed “feaure” to “feature”, “experrience” to “experience”, “buisness” to “business”, “themme” to “theme”, “falgs” to “flags”, “testd” to “tested”
  • LB.md: Fixed “resorcues” to “resources”
  • MESSAGE_ID.md: Improved section header formatting from “Why this is important?” to proper header
  • MESSAGE_PATTERNS.md: Fixed “secnario” to “scenario”
  • PAGINATION.md: Fixed “forecasrting” to “forecasting”, “learnign” to “learning”, “Everything” to “Every time”
  • QUEUE.md: Fixed “reciver” to “receiver”, “needss” to “needs”, “a good metrics” to “good metrics”
  • RETRY.md: Fixed “Everytime” to “Every time”, “Everysingle” to “Every single”

[1.0.4] - 2025-10-30

Added

Dilemmas - Added “Why you need to know this?” sections:

  • DISCOVERY_VS_DELIVERY.md: Added section emphasizing learning speed as competitive advantage with Mark Zuckerberg product strategy reference, fixed TikTok embed iframe for proper display
  • MOVE_FAST_VS_DO_IT_RIGHT.md: Enhanced content on balancing speed vs quality in product development
  • DECIDE_OR_WAIT.md: Added section on cost of delay analysis, experimentation strategies, and importance of Blameless Feature Reviews for learning from decisions
  • BUILD_VS_BUY.md: Added section on collaboration with product/UX, conducting trade-off analysis, and socializing decisions with stakeholders

Anti-patterns - Added “Why you need to know this?” sections:

  • TECH_DEBT_PLAGUE.md: Added section with strategies to fight tech debt including incremental improvements, team education, pushing back on bad practices, and explaining costs to management
  • STAGNATION.md: Added section on fighting auto-pilot mode through passion, continuous learning, conferences, knowledge sharing, experimentation, and POCs
  • REQUIREMENTS.md: Added section on handling requirements through product collaboration, UX understanding, spike techniques, production validation, experiments, and industry research
  • IGNORE_CULTURE.md: Enhanced content emphasizing architect’s role as leader and teacher in setting example for caring and action-oriented behavior

Changed

  • GLOSSARY.md: Added terms including Blast Radius, Blameless Feature Reviews, Learning Cycles, OpenSearch/Elasticsearch, and Spike

[1.0.3] - 2025-10-29

Added

Concepts - Added “Why you need to know this?” sections:

  • STATELESS_VS_STATEFULL_SVC.md: Added comprehensive content on service architecture patterns
  • SOURCE_OF_TRUTH.md: Added section explaining importance in distributed systems, addressing write vs read patterns, and avoiding data inconsistencies
  • SCHEMA_EVOLUTION.md: Added section on backward vs forward compatibility strategies, emphasizing backend systems as source of truth and rollback considerations
  • PARTITION.md: Added section explaining when partitions become necessary at scale and for rapidly growing datasets
  • OPLOCKING.md: Added section comparing pessimistic vs optimistic locking use cases, including React re-rendering scenario and high/low contention environments
  • IDEMPOTENCY.md: Added section on REST API design requirements for GET/HEAD/OPTIONS/TRACE/PUT methods and code complexity implications

Changed

  • BASE.md: Enhanced with additional details and clarity on eventual consistency patterns
  • AUTHENT.md: Enhanced with comprehensive authentication and authorization coverage
  • ACID.md: Enhanced with detailed transaction property explanations

[1.0.2] - 2025-10-28

Changed

  • Enhanced ANTI-FRAGILITY.md with additional content
  • Expanded OSS.md with more open source insights
  • Extended PROTECT_YOUR_TIME.md with additional time management content
  • Enhanced SO.md with more service orientation practices
  • Updated CRYSTAL_BALL.md with additional insights
  • Improved STAGNATION.md anti-pattern documentation
  • Expanded GLOSSARY.md with more architectural terms

Added

  • CHANGELOG.md file to track changes and updates

[1.0.1] - 2025-10-27

Added

  • Chapter 0 (Zero) with rationale and reasoning behind the book
  • Chapter 2 (Anti-Patterns): TECH_DEBT_PLAGUE, IGNORE_CULTURE, STAGNATION, REQUIREMENTS
  • Chapter 3 (Dilemmas): DISCOVERY_VS_DELIVERY, MOVE_FAST_VS_DO_IT_RIGHT, BUILD_VS_BUY, DECIDE_OR_WAIT
  • Chapter 4 (Properties): ANTI-FRAGILITY, STATE-OF-THE-ART, SCALABILITY, OBSERVABLE, STABILITY, SECURE
  • Chapter 7 (Patterns) as separate section from Concepts
  • Chapter 8 (Tools): DIAGRAMING, WRITING, THINKING
  • Chapter 9 (Epilogue): IN_THE_END, RESOURCES, REFERENCES, GLOSSARY, INDEX
  • CONNECTION_POOL pattern documentation
  • WHY sections across all chapters explaining rationale
  • GitHub Pages deployment workflow
  • Glossary with architectural terms and definitions
  • Index for topic navigation
  • Resources section with books and learning materials
  • References section with external links

Changed

  • Reorganized book structure into numbered chapters
  • Separated Concepts and Patterns into distinct chapters
  • Moved pattern files from /concepts to /patterns directory
  • Enhanced defensive programming content
  • Expanded crystal ball philosophy
  • Improved English grammar and readability
  • Updated table of contents and navigation

Fixed

  • Page rendering issues
  • Documentation structure inconsistencies

[1.0.0] - 2025-10-27

Added

  • Initial project setup with mdBook
  • Introduction and cover page
  • Philosophy section: CRYSTAL_BALL, DEFENSIVE, DOING_HARD_THINGS, FRONTEND_VS_BACKEND, OSS, SO
  • Practices section: ATTENTION_TO_DETAIL, ARCH_REVIEW, DESIGN_FIRST, OWNERSHIP, READING_CODE, MONTHLY_REVIEW, WORKING_ON_TRENCHES
  • Concepts and Patterns section: ACID, API_GATEWAY, AUTHENT, BASE, BFF_PATTERN, CACHE, CONNECTION_POOL, FEATURE_FLAGS, IDEMPOTENCY, LB, MESSAGE_PATTERNS, MESSAGE_ID, OPLOCKING, PAGINATION, PARTITION, QUEUE, RETRY, SCHEMA_EVOLUTION, SOURCE_OF_TRUTH, STATELESS_VS_STATEFULL_SVC, WEB_HOOK
  • Build scripts and documentation workflow
  • VERSION tracking system
  • Theme customization
  • .gitignore configuration