0
0
HLDsystem_design~12 mins

Horizontal vs vertical partitioning in HLD - Architecture Patterns Compared

Choose your learning style9 modes available
System Overview - Horizontal vs vertical partitioning

This system demonstrates two common database partitioning methods: horizontal and vertical partitioning. Horizontal partitioning splits data rows across multiple tables or databases, while vertical partitioning splits data columns. The goal is to improve performance, scalability, and manageability of large datasets.

Architecture Diagram
User
  |
  v
Load Balancer
  |
  v
API Gateway
  |
  +-----------------------+
  |                       |
  v                       v
Horizontal Partitioning   Vertical Partitioning
  |                       |
  v                       v
DB Shard 1               DB Table A (Columns 1-3)
DB Shard 2               DB Table B (Columns 4-6)
DB Shard 3               DB Table C (Columns 7-9)
  |                       |
  +----------+------------+
             v
           Cache
             |
             v
          Response
Components
User
user
Initiates requests to the system
Load Balancer
load_balancer
Distributes incoming requests evenly to API Gateway instances
API Gateway
api_gateway
Routes requests to appropriate partitioning strategy services
Horizontal Partitioning
service
Handles data split by rows across multiple database shards
Vertical Partitioning
service
Handles data split by columns across multiple database tables
DB Shard 1
database
Stores a subset of rows for horizontal partitioning
DB Shard 2
database
Stores another subset of rows for horizontal partitioning
DB Shard 3
database
Stores another subset of rows for horizontal partitioning
DB Table A (Columns 1-3)
database
Stores first group of columns for vertical partitioning
DB Table B (Columns 4-6)
database
Stores second group of columns for vertical partitioning
DB Table C (Columns 7-9)
database
Stores third group of columns for vertical partitioning
Cache
cache
Stores frequently accessed data to reduce database load
Response
response
Sends processed data back to the user
Request Flow - 18 Hops
UserLoad Balancer
Load BalancerAPI Gateway
API GatewayHorizontal Partitioning
Horizontal PartitioningCache
CacheHorizontal Partitioning
Horizontal PartitioningDB Shard 1/2/3
DB Shard 1/2/3Horizontal Partitioning
Horizontal PartitioningCache
Horizontal PartitioningResponse
API GatewayUser
API GatewayVertical Partitioning
Vertical PartitioningCache
CacheVertical Partitioning
Vertical PartitioningDB Table A/B/C
DB Table A/B/CVertical Partitioning
Vertical PartitioningCache
Vertical PartitioningResponse
API GatewayUser
Failure Scenario
Component Fails:Cache
Impact:Cache misses increase, causing more direct database queries and higher latency
Mitigation:System continues working by querying databases directly; cache rebuilds over time
Architecture Quiz - 3 Questions
Test your understanding
Which component directs requests to either horizontal or vertical partitioning?
ACache
BLoad Balancer
CAPI Gateway
DUser
Design Principle
This architecture shows how horizontal and vertical partitioning improve database scalability by splitting data either by rows or columns. Using a cache reduces database load and latency. The API Gateway cleanly routes requests to the appropriate partitioning strategy, enabling flexible data access patterns.