Skip to main content

Architecture

Common Components in System Design

·540 words·3 mins
Designing scalable and reliable systems requires understanding a core set of reusable building blocks. This article covers the most common components — from load balancers and databases to caches and CDNs — and the key trade-offs to consider when using them. Load Balancer with Multiple Web Servers and Auto Scaling # A load balancer distributes incoming traffic across multiple web servers, providing a single public entry point to the system.

Beyond the Wall: Building a Low-Cost, High-Efficiency Cloud RAG Application with Firestore Vector Search

·1573 words·8 mins
RAG (Retrieval Augmented Generation) is an AI framework that allows developers to add external information without retraining the LLM, improving the accuracy of its answers. As of 2026, it is a widely known technology. The concept is roughly as follows: First, vectorize external information (the data you want the LLM to know) using an embedding model and store it. After a user enters a prompt, the prompt is also vectorized using the same embedding model. It is then compared against the previously stored vectors to retrieve the most similar pieces of data. These are then integrated by the LLM to generate a response for the user. This approach allows the LLM to answer using specific knowledge integrated by developers without the need for retraining.

HA Cluster Notes and Application Design

·430 words·3 mins
When designing systems with higher traffic, you will eventually encounter cluster-related issues. Cluster # A collection of one or more machines (nodes) with three different purposes: Load Balancing # Allows multiple machines to share tasks as evenly as possible, accelerating application execution. High Availability (HA) # For high availability and redundancy, if one machine suddenly fails, others can take over.