Architecture
110 articles
About Capacity Planning
Plan system capacity by analyzing performance requirements, measuring infrastructure, forecasting needs, and setting safety factors.
A List to Understand SaaS Architecture
A compilation of resources to transition from knowing nothing about SaaS to fully understanding it.
Exploring Articles on Architecture Design and Organizational Design
Explore relationships between software architecture and organizational design through curated articles and resources on Conway's Law impacts.
Approach to Architecture Design
Master staged architecture design approach to configuration diagrams for clearer thinking, better team alignment, and preventing over-design.
Modular Monolith Architecture: A Practical Guide and When to Choose It Over Microservices
Learn what a modular monolith is, how it differs from microservices and traditional monoliths, and when it is the better architectural choice for your team.
CQRS Explained: When to Use Command Query Responsibility Segregation
Learn what CQRS (Command Query Responsibility Segregation) is, how it differs from CRUD, and when applying it actually improves your system design and scalability.
The Saga Pattern Explained: Managing Distributed Transactions in Microservices
Learn how the Saga pattern manages distributed transactions in microservices. Compare choreography vs orchestration-based sagas and their practical trade-offs.
What is BFF (Backend For Frontend)? Benefits and Implementation Guide
A summary of what I researched about BFF (Backends For Frontends). It covers what a BFF is and why it is needed, and how placing a BFF layer between the frontend and backend can simplify the API contract for each client.
Notes on Building a Notification Platform
Understand notification platform design for multi-channel delivery including email, push, SMS integration.
Monorepos Explained: Benefits, Drawbacks, and When to Use Them
Understand what monorepos are, the tooling involved (Nx, Turborepo, Bazel), and the practical trade-offs between monorepos and polyrepos for growing engineering teams.
Road to ISUcon
An account of the preparations I made ahead of competing in ISUCON for the first time. Starting from setting a realistic goal of spending the entire qualifier session on tuning, it describes the preparation and mindset I built up for my first attempt at the competition.
Data-Oriented Application Design
A review of Data-Oriented Application Design. Known as a classic on distributed system design, it systematically covers the foundational technologies behind reliable, scalable applications, such as data storage and retrieval, distribution, and consistency. It is substantial and rewards repeated rereading.
Fundamentals of Software Architecture
A review of Fundamentals of Software Architecture. A book that explains how to evaluate software architecture and covers architecture patterns. Grasping the idea of architectural characteristics and the representative patterns, it helps you build a foundation for design decisions.
Software Architecture Hardparts
A review of Software Architecture: The Hard Parts. Centered on the hard decisions in distributed systems, it organizes ways of thinking and approaches for restructuring architecture. Reading Fundamentals of Software Architecture and Building Evolutionary Architectures first makes it easier going.
System Design Interview
A review of System Design Interview. The Japanese translation of the popular System Design Interview. Through interview scenarios, it concretely teaches how to design scalable systems. Books of this kind in Japanese are rare, making it one worth keeping on hand.
Devoured System Design Resources
A link-collection-style roundup of the various resources I read while studying system design. Along with the motivation behind why I dug into the topic, it organizes articles, books, and other resources I found helpful for learning system design.
Notes on Articles Read to Clarify the Differences Between SOA and Microservices
Compare SOA versus microservices architectures, ESB components, API gateways, and distributed system design trade-offs.
Architecture Decision Records (ADR) Explained: How to Document Technical Decisions
Learn what Architecture Decision Records (ADRs) are, why documenting technical decisions matters, and how to write effective ADRs for your engineering team.
About Design Docs
Write effective Design Docs for software architecture. Master documentation lifecycle, review process, and team collaboration strategies.
Technologies Supporting bmf-tech
Explore Docker, Golang, Vue.js, Nginx, Prometheus, and Grafana powering modern blogging infrastructure and monitoring systems.