# Algorithm overview

# Essential Algos

10 common algos

Essential Algos

# Validation

Validation

# Load balancing

Load balancing algos

# Rate limiting

Rate limiting

  • fixed window
  • sliding window
  • token bucket
  • concurrency

# Retry

Retry patterns

# Generate Ids

Generate Ids

# Pagination

Pagination

# Locking

Locking concurrency

# Data structure

Data structure cheatsheet

Data structure list2

  • Arrays
  • Linked list
  • Stack
  • Queue
  • Hash table
  • Tree
  • Graph

# Unordered data structures

key-value and connected elements

useful for storing and retrieving information that doesn't follow a specific order. For speed, they utilize key-value pairs or relationships between elements.

# Hierarchical data structures

tree-like

Hierarchical data structures represent data in a tree-like shape.

They are great for organizing and managing data with ordered parent-child relationships to quickly search, access, and insert elements quickly.

# Linear data structures

array

Linear data structures are used to arrange items sequentially and in a specific order. They can be traversed in a linear fashion, which makes them ideal for organizing and manipulating data when access, insertion, or removal must take place in a specific sequence or place.

# Skiplist

Wiki read more (opens new window)

  • a common in-memory index type
  • to build the Sorted Set
  • allows for fast lookups, range queries, and other operations
  • DB used: Redis

https://www.geeksforgeeks.org/skip-list/

https://www.npmjs.com/package/ts-skiplist

# Bloom filter

A Bloom filter is a space-efficient probabilistic data structure that is used to test whether an element is a member of a set.

Bloom filter

Use case:

  • avoid attack miss cache attack

Refs

# System design interview

System design interview