notes
  • computer-networking
    • extend-wifi-with-router
    • how-the-internet-works
    • idk
    • networking-devices
    • osi-model
    • tcp-ip
    • Types of VPN
  • databases
    • Foreign Keys
    • Redis
    • simple-queries
  • devops
    • ansible
    • Manual deployment
    • docker
    • Workflow file
    • nginx
    • promethues-grafana
    • terraform
  • hardware
    • Power
  • home-server
    • proxmox-basics
    • proxmox-setup
    • storage
  • languages-frameworks
    • programming-paradigms
    • programming-languages
      • Regex Notes
      • c
        • basics
        • pointers-memory
      • cpp
        • basics
        • running-cpp
      • php
        • basics
        • choizez
        • frameworks
          • laravel
      • python
        • venv
        • concepts
          • Using lambda
        • frameworks
          • django
            • django
            • start
      • java
        • advanced
          • functional-programming
          • reactive-programming
        • concepts
          • how-java-works
          • serialization
          • sockets
          • threads
        • extra
          • collection-framework
          • generics-and-wildcards
          • Regular Expressions (Regex)
          • streams
        • frameworks
          • orm
        • fundamentals
          • OOP
          • conditionals
          • data-structures
          • data-types
          • exceptions
          • files
          • Functions (aka method)
          • Loops
          • packages
          • type-casting
      • javascript
        • frameworks
          • morgan
          • Using Sequelize with PostgreSQL in JavaScript
  • operating-system
    • basics
    • linux-directories
    • Basic Unix Terminal Commands
  • others
    • dark-web
    • piracy
  • system-design
    • system-design
  • web-dev
    • full-stack
  • books
    • sicp
      • Recursion thought process
      • 1
        • 1.1
        • 1.2
        • 1.3
      • 2
        • 2.1
  • certifications
    • aws-certified-cloud-practitioner
      • core-services
      • other-services
    • comptia-a+
      • Cloud
      • hardware
      • Important terms
      • Important terms
      • Troubleshooting
  • cloud
    • aws
      • aws-cli
      • aws-ec2-deployment
  • dsa
    • algorithms
      • back-tracking
      • bfs
      • Binary Search
      • bit-manipulation
      • Bubble sort
      • bucket-sort
      • counting-sort
      • dfs
      • Divide & Conquer
      • djikstras-algorithm
      • dynamic-programming
      • external-sorting
      • greedy-algorithm
      • Heap sort
      • Insertion sort
      • kadanes-algorithm
      • Merge sort
      • Permutation
      • quick-sort
      • Radix Sort
      • recurrence-relation
      • recursion
      • Selection sort
      • sliding-window
      • subset
      • time-space-complexity
      • topological-sort
      • tree-traversals
      • Two Pointers Technique
    • data-structures
      • data-structures
  • security
    • authentication
      • What is JWT (JSON Web Token)?
    • software-architecture-design
      • design-patterns
Powered by GitBook
On this page
  • Vertical scaling
  • Horizontal scaling
  • Load balancing
  • Caching
  • Database replication
  • Redundancy
  • Database partitioning
  1. system-design

system-design

Previoussystem-designNextweb-dev

Last updated 1 month ago

Vertical scaling

Increasing the resources of a single server/machine to handle a higher workload aka. scaling up

Disadvantage :

  • resource ($$$)

  • practical limit on how much server can scaled

Horizontal scaling

Add more servers/machine to handle increased workload aka. scaling out

Shared session state refers to maintaining consistent user session data across multiple instances of a distributed application or system.

RAID (Redundant Array of Independent Disks) is a technology that combines multiple physical hard drives into a single logical unit to improve performance, fault tolerance, and storage capacity in data storage systems.

Session caching stores user session data in a shared cache for improved performance and scalability in distributed systems.

Load balancing

Load balancing refers to the process of distributing incoming network traffic or computing tasks across multiple servers, resources, or computing nodes to ensure efficient utilization of those resources and to prevent overload on any individual server.

Caching

Caching refers to the practice of storing frequently accessed or computationally expensive data in a temporary storage location called a cache

Database replication

Data Replication: Copying and synchronizing data across multiple locations for redundancy, availability, and fault tolerance.

Redundancy

Practice of having backup or duplicate components, systems, or resources that are ready to take over in the event of a failure.

Active : Passive : One system handles traffic while another remains on standby for failover, used for availability and minimizing downtime. (passive takes over active when active is down)

Active : Active : Multiple systems share incoming workloads actively, used to maximize resource utilization and scalability while maintaining availability.

Database partitioning

Untitled