System Design

system-design-System Design 12-CDN-Basic Concept and Design-how-cdn-work-hogantech

CDN Basic Concept and Design – System Design 12

CDN is a group of proxy servers (Proxy Server) placed based on geographical location. Among them, the proxy server is an intermediate server between the client and the server, and the proxy server will also be placed at the network edge (Network Edge). Also because the edge of the network is close to the end user, the placement of the proxy server helps to quickly transmit the corresponding data to the user by reducing delays and saving bandwidth. In addition to serving as simple proxy servers, CDNs can also make them more efficient through some settings and operations.

CDN Basic Concept and Design – System Design 12 Read More »

Technical Article, System Design
system-design-system design 11-key-value data storage-key-value-store-introductoin-to-database-fundamentals-hogantech

Key-Value Store key-value data storage explanation – system design 11

Key-Value Store is a Distributed Hash Table, in which DHT is a decentralized storage method that provides hash table-like search and storage. Hash Table is also an Abstract Data Type (ADT). Its advantage is that it can usually complete the Search operation in a relatively fast time.

Key-Value Store key-value data storage explanation – system design 11 Read More »

Technical Article, System Design, database,
system-design-system design 10-data copy-data-partitioning-introductoin-to-database-fundamentals-hogantech

Data Partitioning What is data partitioning? – System Design 10

Data Partitioning is the process of dividing data in a database into smaller, more manageable sub-blocks. These sub-blocks are called partitions. Data segmentation can be based on a variety of factors, such as time, customer ID, or product category. Why do we need to partition data? For any system that does not scale, the amount of data will continue to grow, and the read and write traffic to the database will continue to increase.

Data Partitioning What is data partitioning? – System Design 10 Read More »

Technical Article, System Design, database,
system-design-system design 09-data replication-data-replication-introductoin-to-database-fundamentals-hogantech-hoganblab

How does Data Replication optimize the database? - System Design 09

Data Replication is an effective method to solve bottlenecks and improve the performance, scalability and availability of the database by replicating data on multiple nodes. This article will introduce the three main models of data replication: master-slave replication (Single-leader replication), multi-leader replication (Multi-leader replication) and point-to-point replication (Leaderless replication), and analyze their advantages and disadvantages.

How does Data Replication optimize the database? - System Design 09 Read More »

Technical Article, System Design, database,
system-design-System Design 08-Introduction to Database Fundamentals-introductoin-to-database-fundamentals-hogantech-hoganblab

Introduction to database basics – system design 08

What is a database? A database is an organized collection of structured information or data, usually stored electronically in a computer system. Databases are usually controlled by a database management system (DBMS). The data and DBMS together with its associated applications are called a database system, often referred to simply as a database.
Data in the most common types of databases running today are typically modeled as rows and columns in a series of tables to increase the efficiency of processing and querying of the data. Data can then be easily accessed, managed, modified, updated, controlled and organized. Most databases use Structured Query Language (SQL) to write and query data.

Introduction to database basics – system design 08 Read More »

Technical Article, System Design, database,
system-design-system design 07-system design components-what-is-load-balancer-hogantech-hoganblab

Load Balancer Explained – System Design 07

What is a Load Balancer? The load balancer mainly distributes all user requests to the corresponding servers based on the current server load. The advantage of this is to avoid server overload or crash. However, you can also think about it here. If the traffic of the current system is not high, about only a few thousand requests per second, then a load balancer may not be needed. After all, the more complex a system is, the more things need to be considered.

Load Balancer Explained – System Design 07 Read More »

Technical Article, System Design
system-design-system design 06-system design components-what-is-dns-hogantech-hoganblab

What is DNS? Introduction to Domain Name System – System Design 06

What is DNS? The Domain Name System (DNS) maps human-readable domain names to machine-readable IP addresses. For example, the corresponding IP for google.com is 142.250.191.78. When a user enters a domain name into the browser, the browser must convert the domain name into an IP address through DNS. Once the required IP address is obtained, the user's request is forwarded to the target server.

What is DNS? Introduction to Domain Name System – System Design 06 Read More »

Technical Article, System Design
system-design-system design05-system design components-building-block-hogantech

Introduction to System Design Components Building Block – System Design 05

System components are the basic building blocks of system design. They can be combined to construct complex software systems. Here we will also review the basic concepts of system design. System design is an important link in software engineering, which involves the overall architecture and design of the software system. A good system design can make software systems more reliable, scalable and easy to maintain.

Of course, if you want to use these components to design a system, you must first understand what design components there are? What does each design element represent? This article will introduce each system component, and the following chapters will explain the details and applications of each component in detail.

Introduction to System Design Components Building Block – System Design 05 Read More »

Technical Article, System Design
system-design-system design04-back-cover calculation-back-of-the-envelope-hogantech-hoganblab

Back-of-the-envelope Back-of-the-envelope Calculation – System Design 04

Back-of-the-envelope, also known as back-of-the-envelope calculation, is a method of calculating approximate values of complex problems using simple estimates.

Let’s also review here. A decentralized system consists of computing nodes connected through a network. These nodes can be various types of servers, such as web servers, application servers, and storage servers.

When designing a decentralized system, it is important to understand the number of requests each node can handle. At the same time, we can also determine the required number of nodes and traffic, so we will use Back-of-the-envelope to calculate our rough estimate, and finally design the system we need.

Back-of-the-envelope Back-of-the-envelope Calculation – System Design 04 Read More »

Technical Article, System Design
system-design-system design 03-software design non-functional features-hogantech-hoganblab

Non-functional features of software design – System Design 03

In modern information technology, system availability (Availability), reliability (Reliability), scalability (Scalability), maintainability (Maintainability) and fault tolerance (Fault Tolerance) are very important non-functional characteristics. These characteristics It not only affects the performance and efficiency of the software system, but also directly affects the user experience. This article will also provide an in-depth explanation of the above five characteristics.

Non-functional features of software design – System Design 03 Read More »

Technical Article, System Design
en_USEnglish