High-performance Distributed System Patterns (Consistent Hashing, Token Bucket, LSM Tree) with zero dependencies.
npm install backend-design-patternsCLOSED -> OPEN -> HALF_OPEN
bash
npm install backend-design-patterns
`
Try it Live
Want to see these patterns in action? We included a simulated server environment.
`bash
npm run demo
`
Simulates a Load Balancer + Rate Limiter + Circuit Breaker handling traffic.
Usage
$3
`typescript
import { ConsistentHashing } from 'backend-design-patterns/consistent-hashing'
const ch = new ConsistentHashing()
ch.addNode('redis-1')
ch.addNode('redis-2')
const node = ch.getNode('user-session-123')
console.log(Assign to: ${node})
`
$3
`typescript
import { TokenBucket } from 'backend-design-patterns/rate-limiter'
const limiter = new TokenBucket(100, 10) // 100 capacity, 10 tokens/sec
if (limiter.tryConsume(1)) {
// Handle request
} else {
// 429 Too Many Requests
}
// 429 Too Many Requests
}
`
$3
`typescript
import { BloomFilter } from 'backend-design-patterns/bloom-filter'
const filer = new BloomFilter(1024, 3)
filter.add('superuser')
if (filter.mightContain('superuser')) {
// It MIGHT be in the set
}
`
Benchmarks
Core patterns are optimized for high-throughput environments.
| Pattern | Operation | Ops/Sec (approx) |
|---------|-----------|------------------|
| Token Bucket | tryConsume | 25,000,000+ |
| Consistent Hashing | getNode | 3,000,000+ |
| Bloom Filter | mightContain | 15,000,000+ |
| LSM Tree | put (MemTable) | 500,000+ |
Measured on standard i7 equivalent hardware using npm run benchmark.
Development
This project uses TypeScript and Vitest.
`bash
npm install
npm test
``