Architecture
115 articles
Comparing API Styles: REST, GraphQL, gRPC, Webhooks, WebSocket, and Messaging
Six common API styles, REST, GraphQL, gRPC, Webhooks, WebSocket, and Messaging, compared side by side. This article organizes them by communication model, lays out each style's overview, design considerations, and pros and cons, and gives guidance for choosing. A map for picking a style in API design.
When to Use GraphQL: Adoption Criteria and Trade-offs
When should you adopt GraphQL? This guide covers its core ideas (a typed schema, a single endpoint, fetching exactly what you need), where it fits and where it does not, the trade-offs, operational concerns such as N+1, and how it compares with REST and gRPC.
When to Use gRPC: Adoption Criteria and Trade-offs
When should you adopt gRPC? This guide covers its core ideas (RPC, HTTP/2, Protocol Buffers), where it fits and where it does not, the trade-offs, operational concerns, and how it compares with REST and GraphQL.
Comparing API Versioning Strategies: Path, Query, Header, and Payload
A concise comparison of four API versioning strategies — path, query parameter, header, and message payload — covering their pros, cons, and best fit.
What Is EventStorming
Learn EventStorming, a workshop technique born from domain-driven design that uses sticky notes to rapidly map a business domain and build shared understanding between developers and domain experts.
Production-Ready Microservices: Building Standardized Systems Across an Engineering Organization
A book that organizes the requirements microservices must satisfy to be production-ready, presented as a standardization checklist.
Accidental Complexity and the Absence of Decision Records
How accidental complexity emerges, and why the absence of ADRs and Design Docs makes it hard to tell what is essential from what is accidental.
Three Common Patterns for Distributed Transactions — 2PC, Saga, and Outbox
A concise comparison of the three canonical distributed transaction patterns in microservices — 2PC, Saga, and Outbox — covering their mechanics, trade-offs, and when to use each.
Architecture Modernization: Socio-technical alignment of software, strategy, and structure
Architecture Modernization: Socio-technical alignment of software, strategy, and structure
Fundamentals of Software Architecture, 2nd Edition: An Engineering Approach
Fundamentals of Software Architecture, 2nd Edition: An Engineering Approach
The Abstraction Trap in Architecture Design
Why sharing domain logic can quietly turn into architectural debt, while technical concerns can safely be shared — with nuance around authorization and PII-sensitive logging.
Viability Conditions for Building a Platform
How do you decide whether to build an internal platform? This article organizes the viability conditions from the perspectives of core/supporting/generic subdomains, comparison with external services, leverage, and organizational capacity, and examines how far domain analysis alone can take you.
What's the Difference Between Product Development and Platform Development?
Exploring how product development and platform development differ across three dimensions — decision criteria, design philosophy, and investment perspective.
Migrating bmf-tech.com from gobel to gohan — A Full Static Site Transition
The complete process of migrating bmf-tech.com from a self-built headless CMS (gobel) with MySQL and Vue.js to a fully static site on gohan, hosted on Cloudflare Pages. Covers 700+ articles, English slug generation, image migration, redirects, and a Go-based preflight checker.
Engineering in the AI Era: Evolution from Prompts to Autonomous Systems
Master Prompt as Code, PromptOps, LLM-as-Judge evaluation, Context Engineering, and Agentic Engineering for AI.
Considering Engineering in the Age of AI
Establish prompt governance with Golden Dataset validation, LLM-as-Judge evaluation, and prompt injection security.
LLM Prompt Management and Evaluation Platform Using GitHub Agentic Workflow
Manage LLM prompts as code using GitHub Agentic Workflows: Copilot-powered automation with golden datasets and evaluation.
Everything About Digital Identity: Knowledge for Realizing a Secure and User-Centric Identity System
Everything About Digital Identity: Knowledge for Realizing a Secure and User-Centric Identity System
Getting Started with Domain-Driven Design: Practical Techniques for Connecting Software Implementation and Business Strategy
Getting Started with Domain-Driven Design: Practical Techniques for Connecting Software Implementation and Business Strategy
Differentiating Architecture Strategy, Tactics, and Design
Differentiate architecture strategy, tactics, and design using 5W1H framework to clarify why, what, how, when, where, and who decisions.