Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
yonatangross avatar

Distributed Systems

  • 236 installs
  • 213 repo stars
  • Updated August 4, 2026
  • yonatangross/orchestkit

Architect resilient microservices, queues, caching, and service boundaries when building scalable backends for SaaS products and multi-agent orchestration platforms.

About

Covers distributed systems architecture patterns for orchestkit backends including microservices decomposition, async messaging, caching layers, consistency tradeoffs, and resilience for production SaaS and agent platforms.

  • Service boundary design
  • Event-driven messaging patterns
  • Caching and consistency models
  • Fault tolerance strategies
  • Cross-service observability

Distributed Systems by the numbers

  • 236 all-time installs (skills.sh)
  • +2 installs in the week ending Jul 28, 2026 (Skillselion tracking)
  • Ranked #1,668 of 4,347 Backend & APIs skills by installs in the Skillselion catalog
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/yonatangross/orchestkit --skill distributed-systems

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs236
repo stars213
Last updatedAugust 4, 2026
Repositoryyonatangross/orchestkit

What it does

Architect resilient microservices, queues, caching, and service boundaries when building scalable backends for SaaS products and multi-agent orchestration platforms.

Files

SKILL.mdMarkdownGitHub ↗

Distributed Systems Patterns

Comprehensive patterns for building reliable distributed systems. Each category has individual rule files in rules/ loaded on-demand.

Quick Reference

CategoryRulesImpactWhen to Use
Distributed Locks3CRITICALRedis/Redlock locks, PostgreSQL advisory locks, fencing tokens
Resilience3CRITICALCircuit breakers, retry with backoff, bulkhead isolation
Idempotency3HIGHIdempotency keys, request dedup, database-backed idempotency
Rate Limiting3HIGHToken bucket, sliding window, distributed rate limits
Edge Computing2HIGHEdge workers, V8 isolates, CDN caching, geo-routing
Event-Driven2HIGHEvent sourcing, CQRS, transactional outbox, sagas

Total: 16 rules across 6 categories

Quick Start

# Redis distributed lock with Lua scripts
async with RedisLock(redis_client, "payment:order-123"):
    await process_payment(order_id)

# Circuit breaker for external APIs
@circuit_breaker(failure_threshold=5, recovery_timeout=30)
@retry(max_attempts=3, base_delay=1.0)
async def call_external_api():
    ...

# Idempotent API endpoint
@router.post("/payments")
async def create_payment(
    data: PaymentCreate,
    idempotency_key: str = Header(..., alias="Idempotency-Key"),
):
    return await idempotent_execute(db, idempotency_key, "/payments", process)

# Token bucket rate limiting
limiter = TokenBucketLimiter(redis_client, capacity=100, refill_rate=10)
if await limiter.is_allowed(f"user:{user_id}"):
    await handle_request()

Distributed Locks

Coordinate exclusive access to resources across multiple service instances.

RuleFileKey Pattern
Redis & Redlock${CLAUDE_SKILL_DIR}/rules/locks-redis-redlock.mdLua scripts, SET NX, multi-node quorum
PostgreSQL Advisory${CLAUDE_SKILL_DIR}/rules/locks-postgres-advisory.mdSession/transaction locks, lock ID strategies
Fencing Tokens${CLAUDE_SKILL_DIR}/rules/locks-fencing-tokens.mdOwner validation, TTL, heartbeat extension

Resilience

Production-grade fault tolerance for distributed systems.

RuleFileKey Pattern
Circuit Breaker${CLAUDE_SKILL_DIR}/rules/resilience-circuit-breaker.mdCLOSED/OPEN/HALF_OPEN states, sliding window
Retry & Backoff${CLAUDE_SKILL_DIR}/rules/resilience-retry-backoff.mdExponential backoff, jitter, error classification
Bulkhead Isolation${CLAUDE_SKILL_DIR}/rules/resilience-bulkhead.mdSemaphore tiers, rejection policies, queue depth

Idempotency

Ensure operations can be safely retried without unintended side effects.

RuleFileKey Pattern
Idempotency Keys${CLAUDE_SKILL_DIR}/rules/idempotency-keys.mdDeterministic hashing, Stripe-style headers
Request Dedup${CLAUDE_SKILL_DIR}/rules/idempotency-dedup.mdEvent consumer dedup, Redis + DB dual layer
Database-Backed${CLAUDE_SKILL_DIR}/rules/idempotency-database.mdUnique constraints, upsert, TTL cleanup

Rate Limiting

Protect APIs with distributed rate limiting using Redis.

RuleFileKey Pattern
Token Bucket${CLAUDE_SKILL_DIR}/rules/ratelimit-token-bucket.mdRedis Lua scripts, burst capacity, refill rate
Sliding Window${CLAUDE_SKILL_DIR}/rules/ratelimit-sliding-window.mdSorted sets, precise counting, no boundary spikes
Distributed Limits${CLAUDE_SKILL_DIR}/rules/ratelimit-distributed.mdSlowAPI + Redis, tiered limits, response headers

Edge Computing

Edge runtime patterns for Cloudflare Workers, Vercel Edge, and Deno Deploy.

RuleFileKey Pattern
Edge Workers${CLAUDE_SKILL_DIR}/rules/edge-workers.mdV8 isolate constraints, Web APIs, geo-routing, auth at edge
Edge Caching${CLAUDE_SKILL_DIR}/rules/edge-caching.mdCache-aside at edge, CDN headers, KV storage, stale-while-revalidate

Event-Driven

Event sourcing, CQRS, saga orchestration, and reliable messaging patterns.

RuleFileKey Pattern
Event Sourcing${CLAUDE_SKILL_DIR}/rules/event-sourcing.mdEvent-sourced aggregates, CQRS read models, optimistic concurrency
Event Messaging${CLAUDE_SKILL_DIR}/rules/event-messaging.mdTransactional outbox, saga compensation, idempotent consumers

Key Decisions

DecisionRecommendation
Lock backendRedis for speed, PostgreSQL if already using it, Redlock for HA
Lock TTL2-3x expected operation time
Circuit breaker recoveryHalf-open probe with sliding window
Retry algorithmExponential backoff + full jitter
Bulkhead isolationSemaphore-based tiers (Critical/Standard/Optional)
Idempotency storageRedis (speed) + DB (durability), 24-72h TTL
Rate limit algorithmToken bucket for most APIs, sliding window for strict quotas
Rate limit storageRedis (distributed, atomic Lua scripts)

When NOT to Use

No separate event-sourcing/saga/CQRS skills exist — they are rules within distributed-systems. But most projects never need them.

PatternInterviewHackathonMVPGrowthEnterpriseSimpler Alternative
Event sourcingOVERKILLOVERKILLOVERKILLOVERKILLWHEN JUSTIFIEDAppend-only table with status column
Saga orchestrationOVERKILLOVERKILLOVERKILLSELECTIVEAPPROPRIATESequential service calls with manual rollback
Circuit breakerOVERKILLOVERKILLBORDERLINEAPPROPRIATEREQUIREDTry/except with timeout
Distributed locksOVERKILLOVERKILLBORDERLINEAPPROPRIATEREQUIREDDatabase row-level lock (SELECT FOR UPDATE)
CQRSOVERKILLOVERKILLOVERKILLOVERKILLWHEN JUSTIFIEDSingle model for read/write
Transactional outboxOVERKILLOVERKILLOVERKILLSELECTIVEAPPROPRIATEDirect publish after commit
Rate limitingOVERKILLOVERKILLSIMPLE ONLYAPPROPRIATEREQUIREDNginx rate limit or cloud WAF

Rule of thumb: If you have a single server process, you do not need distributed systems patterns. Use in-process alternatives. Add distribution only when you actually have multiple instances.

Anti-Patterns (FORBIDDEN)

# LOCKS: Never forget TTL (causes deadlocks)
await redis.set(f"lock:{name}", "1")  # WRONG - no expiry!

# LOCKS: Never release without owner check
await redis.delete(f"lock:{name}")  # WRONG - might release others' lock

# RESILIENCE: Never retry non-retryable errors
@retry(max_attempts=5, retryable_exceptions={Exception})  # Retries 401!

# RESILIENCE: Never put retry outside circuit breaker
@retry  # Would retry when circuit is open!
@circuit_breaker
async def call(): ...

# IDEMPOTENCY: Never use non-deterministic keys
key = str(uuid.uuid4())  # Different every time!

# IDEMPOTENCY: Never cache error responses
if response.status_code >= 400:
    await cache_response(key, response)  # Errors should retry!

# RATE LIMITING: Never use in-memory counters in distributed systems
request_counts = {}  # Lost on restart, not shared across instances

Detailed Documentation

ResourceDescription
${CLAUDE_SKILL_DIR}/scripts/Templates: lock implementations, circuit breaker, rate limiter
${CLAUDE_SKILL_DIR}/checklists/Pre-flight checklists for each pattern category
${CLAUDE_SKILL_DIR}/references/Deep dives: Redlock algorithm, bulkhead tiers, token bucket
${CLAUDE_SKILL_DIR}/examples/Complete integration examples

Related Skills

  • caching - Redis caching patterns, cache as fallback
  • background-jobs - Job deduplication, async processing with retry
  • observability-monitoring - Metrics and alerting for circuit breaker state changes
  • error-handling-rfc9457 - Structured error responses for resilience failures
  • auth-patterns - API key management, authentication integration

Related skills

Backend & APIsbackenddevops

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.