System Architecture & Engineering Notes
Technical writings on Change Data Capture, event-driven microservices, database performance, and distributed systems.
2026-09-29 • 6 min read
Data Real-World #01: Overall Architecture - The "Blueprint" to Rescue the Financial Reconciliation System
Have you ever woken up at 8 AM, sipped your coffee, opened the server logs, and frozen upon seeing the chilling words Killed: 9 or Out of Memory (OOM)? The financial data reconciliation cron job running since 10 PM last night crashed at the 99th minute simply because... it ran out of RAM.
2026-09-28 • 5 minutes read
From 100 to 1000 CCU #02: Optimizing the Ad Performance Reporting System for 1000 CCU: Moving to Data Architecture
When traffic increases 10-fold (1000 CCU) and data volume balloons to tens of GB/TB, a monolithic architecture will completely collapse. This article presents a solution to transition to a Modern Data Architecture. The core of this model is the complete separation of the operational Database (PostgreSQL) and the Data Warehouse (BigQuery), applying Cache (Redis) as a shield to protect the system from query storms, and building a professional Data Pipeline.
2026-09-25 • 12 mins
Distributed System Design #08.2: Distributed System Governance - Observability & Self-Healing
Following the picture of finance and risks in the previous part, this article will solve the final survival puzzle of horizontal architecture: Observability and Self-Healing.
2026-09-25 • 12 mins
Distributed System Design #08.1: Distributed System Governance - Solving the Cost (FinOps) and Risk Problems at TicketNow
Having successfully designed and built a horizontal architecture system in previous parts, you've handed TicketNow limitless power to face any traffic volume from millions of fans. However, in the Cloud Computing and distributed systems world, limitless power always comes with a limitless bill and non-linear chaotic risks.
2026-09-25 • 7 min read
Reviewing my 5-year career journey: Ups and downs and trading the passion for traveling across Vietnam
Five years in the software industry passed like the blink of an eye, but looking back, it's long enough to completely reshape a person - from mindset and lifestyle to the first career scars.
2026-09-24 • 5 min read
Design Pattern #16.3: Series Finale - Architecture Evaluation and Conclusion
Analyzing the downside of using Design Patterns (Over-engineering) and practical advice when applying them to real-world projects.
2026-09-23 • 12 mins
Distributed System Design #07: Deployment & Automation - When Infrastructure Becomes Code (IaC)
In system architecture, if you have successfully designed the Edge Tier, stateless Application Tier, distributed Data Tier, and Asynchronous Tier, you are only halfway there. The remaining half that determines whether the system "survives" in reality is Deployment & Automation.
2026-09-23 • 4 min read
Blue-Green Deployment Strategy
Detailed guide on the Blue-Green Deployment strategy in CI/CD. Answers when to apply it, how it works, step-by-step setup, and how to troubleshoot downtime issues.
2026-09-22 • 5 min read
Database Design #05: Comparison of 1NF through BCNF and the Denormalization Problem
The journey from 1NF (1970) to BCNF (1974) marks the golden age of the relational data model. Later, Ronald Fagin added 4NF (1977) to handle multivalued dependencies and 5NF. However, in 99% of real-world software projects, 3NF/BCNF is considered the "sweet spot". Pursuing 4NF or 5NF often makes the structure too fragmented and unnecessarily reduces system performance.
2026-09-21 • 9 mins
Distributed System Design #06: Asynchronous Processing Tier - The 'Circulatory System' of TicketNow
In distributed system architecture, if the Communication Tier is the "shield", the Application Tier is the "brain", and the Data Tier is the "memory", then the Asynchronous Processing Layer is the "shock absorber" and the "circulatory system".
2026-09-21 • 3 min read
From 100 to 1000 CCU #01: Designing an Ad Performance Reporting System for 100 CCU
This article outlines a Monolithic architecture combined with a traditional relational database to solve the problem of displaying ad reports for 100 Concurrent Users (CCU). The focus of this design is optimizing time-to-market and keeping operational costs at a minimum, accepting future scalability limitations in exchange for leanness during the initial phase of the project.
2026-09-18 • 7 min read
The Landscape for Software Developers in 2026: Elimination, Hiring Paradoxes, and the Era of the Product Engineer
An in-depth analysis of the Software Engineer labor market from a personal perspective: The wave of lay-offs, the impact of AI, hiring paradoxes, and how to position yourself in the new era.
2026-09-17 • 6 min read
Design Pattern #16.2: Series Finale - Checkout Execution Coordination Flow
Detailed analysis of how a Checkout request will travel through Design Patterns in real-time (Runtime).
2026-09-17 • 6 min read
Mastering CSS Sticky in CSS Grid: Fixing Filter Bar Drift & Container Height Limits in Deep List Scrolling
Analyzing the Containing Block mechanism of CSS Sticky, completely resolving the drifting filter toolbar issue when scrolling past dozens of articles, and optimizing 60fps rendering performance in React.
2026-09-16 • 8 min read
Mastering Mermaid.js: Comprehensive Guide from Syntax to Visualizing Architecture & Technical Documentation (Diagrams as Code)
A practical handbook on the Diagrams as Code (DaC) philosophy with Mermaid.js: Unlocking the full syntax of Flowcharts, Sequence, Git Graphs, Class, State, and automating architecture documentation in CI/CD pipelines.
2026-09-15 • 10 mins
Distributed System Design #05: Data Tier - The Art of Divide and Conquer and the Double-Booking Problem
If the Application Tier in Part 4 is designed according to the "amnesia" (Stateless) principle, then the entire pressure of the system''s memory will be poured entirely into the Data Tier.
2026-09-15 • 5 minutes read
Database Design #04: BCNF - Addressing the Blind Spots of 3NF
The BCNF standard was proposed in 1974 by Raymond F. Boyce and Edgar F. Codd. Although 3NF resolved most data redundancy issues, Codd realized 3NF still had a technical "blind spot" for tables with overlapping candidate keys. Consequently, BCNF was born, often jokingly referred to by academics as "3.5NF". Unfortunately, Raymond F. Boyce passed away just a few months after publishing this paper, at age 26.
2026-09-14 • 8 mins
Distributed System Design #04: Application Tier - The 'Stateless' Heart of TicketNow
In horizontal architecture, the Application Tier acts as the "brain" processing all business logic such as calculating ticket prices, reserving seats, and confirming payments. Unlike the Edge Tier (only handles routing) or Data Tier (must store persistently), the Application Tier is where nodes (servers/containers) are born and die continuously based on traffic volume (Auto-scaling).
2026-09-14 • 9 minutes read
Moving Away from JSON: Restructuring the Static Blog Storage System with Markdown and SSG
The journey of transitioning the article storage model from a monolithic JSON file to an independent Markdown file system. This article analyzes the performance bottleneck on GitHub Pages, the architecture redesign, and the technical trade-offs of adopting a "Build-time" mindset instead of "Run-time".
2026-09-11 • 12 min read
The Data Engineer Landscape: Competency Map, Data Lifecycle & Modern Data Stack Architecture
A comprehensive guide to the Data Engineer profession: Exploring its foundational role in the AI era, detailing the comparison between Data Engineer vs Data Scientist vs Backend Engineer, analyzing the data lifecycle (Ingestion, Storage, Processing, Serving), the Modern Data Stack architecture (Lakehouse, Kafka, Spark, dbt, Airflow), and a roadmap for practical skill development.