Sharding
Implement horizontal database sharding for massive scale applications
- Type
- Slash Command
- Repository
- jeremylongshore/tons-of-skills-marketplace
- GitHub stars
- 2.8k
- License
- MIT
- Repo last updated
- Sep 27, 2026
What Sharding is
Sharding is a slash command published in the jeremylongshore/tons-of-skills-marketplace repository on GitHub, which has about 2.8k stars. The repository describes itself as: “Model-agnostic agent-skills platform with a harness-free canonical layer, verified adapters, and the ccpi package manager. Explore at tonsofskills.com.”
A slash command is a reusable prompt saved as a markdown file and run by typing its name after a slash. In Claude Code, custom commands have been merged into skills: a file in .claude/commands/ and a skill folder in .claude/skills/ both create the same kind of command, and existing command files keep working.
Sharding gives you a repeatable way to run the same instructions without retyping them, optionally with arguments.
How to install Sharding
Claude Code
- Download sharding.md from the repository.
- Save it to ~/.claude/commands/ (all projects) or .claude/commands/ (one project). As a skill, you can instead save it as ~/.claude/skills/<name>/SKILL.md.
- Run it by typing / followed by its name.
Claude Cowork
- Turn the command into a skill: create a folder with the file saved as SKILL.md and zip it.
- In Customize → Skills, click +, then upload the ZIP.
- Run it from any task with / and the skill name.
New to extending Cowork? Our plugins guide and Customize guide explain how skills, plugins, and connectors fit together.
Inside the source file
An excerpt from plugins/database/database-sharding-manager/commands/sharding.md, shared under the repository's MIT license. Read the full file on GitHub.
Design and implement horizontal database sharding strategies to distribute data across multiple database instances, enabling applications to scale beyond single-server limitations with consistent hashing, automatic rebalancing, and cross-shard query coordination.
When to Use This Command
Use /sharding when you need to:
- Scale beyond single database server capacity (>10TB or >100k QPS)
- Distribute write load across multiple database servers
- Improve query performance through data locality
- Implement geographic data distribution for GDPR/data residency
- Reduce blast radius of database failures (isolate tenant data)
- Support multi-tenant SaaS with tenant-level isolation
DON'T use this when:
- Database is small (<1TB) and performing well
- Can solve with read replicas and caching instead
- Application can't handle distributed transactions complexity
- Team lacks expertise in distributed systems
- Cross-shard queries are majority of workload (use partitioning instead)
Design Decisions
This command implements consistent hashing with virtual nodes because:
- Minimizes data movement when adding/removing shards (only K/n keys move)
- Distributes load evenly across shards with virtual nodes
- Supports gradual shard addition without downtime
- Enables geographic routing for data residency compliance
- Provides automatic failover with shard replica promotion
Alternative considered: Range-based sharding
- Simple to implement and understand
- Predictable data distribution
- Prone to hotspots if key distribution uneven
- Recommended for time-series data with sequential IDs
Alternative considered: Directory-based sharding
- Flexible shard assignment with lookup table
- Easy to move individual records
- Single point of failure (directory lookup)
- Recommended for small-scale or initial implementations
Prerequisites
Before running this command:
- Application supports sharding-aware database connections
- Clear understanding of sharding key (immutable, high cardinality)
- Strategy for handling cross-shard queries and joins
- Monitoring infrastructure for shard health
- Migration plan from single database to sharded architecture
Implementation Process
Step 1: Choose Sharding Strategy
Select sharding approach based on data access patterns and scale requirements.
Step 2: Design Shard Key
Choose immutable, high-cardinality key that distributes data evenly (user_id, tenant_id).
Step 3: Implement Shard Routing Layer
Build connection pooling and routing logic to direct queries to correct shard.
Step 4: Migrate Data to Shards
Perform zero-downtime migration from monolithic to sharded architecture.
Step 5: Monitor and Rebalance
Track shard load distribution and rebalance data as needed.
Output Format
The command generates:
- sharding/shard_router.py - Consistent hashing router implementation
- sharding/shard_manager.js - Shard connection pool manager
- migration/shard_migration.sql - Data migration scripts per shard
- monitoring/shard_health.sql - Per-shard metrics and health checks
- docs/sharding_architecture.md - Architecture documentation and runbooks
Code Examples
Example 1: Consistent Hashing Shard Router with Virtual Nodes
# sharding/consistent_hash_router.py
import hashlib
import bisect
from typing import List, Dict, Optional, Any
from dataclasses import dataclass
import logging
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
@dataclass
class ShardConfig:
"""Configuration for a database shard."""
shard_id: int
host: str
port: int
database: str
weight: int = 1 # Relative weight for load distribution
…Example 2: Shard-Aware Database Connection Pool
// sharding/shard_connection_pool.js
const { Pool } = require('pg');
const crypto = require('crypto');
class ShardConnectionPool {
constructor(shardConfigs) {
this.shards = new Map();
this.virtualNodes = 150;
this.ring = [];
this.ringMap = new Map();
// Initialize connection pools for each shard
shardConfigs.forEach(config => {
const pool = new Pool({
host: config.host,
port: config.port,
database: config.database,
user: config.user,
…Example 3: Geographic Sharding with Data Residency
# sharding/geo_shard_router.py
from typing import Dict, Optional
from dataclasses import dataclass
from enum import Enum
class Region(Enum):
"""Geographic regions for data residency compliance."""
US_EAST = 'us-east'
US_WEST = 'us-west'
EU_WEST = 'eu-west'
ASIA_PACIFIC = 'asia-pacific'
@dataclass
class GeoShardConfig:
region: Region
shard_id: int
host: str
port: int
… Before you install
- Read the whole file first. Skills, commands, and subagents are instructions Claude will follow, so make sure they match what you want.
- Check which tools, scripts, or MCP servers it uses. Local servers and scripts run with your permissions.
- Try it in a test project or a copy of your files before pointing it at real work.
- Pin the version you tested, and review changes before updating.
- Watch for instructions that fetch web content or run shell commands; those are where prompt injection risks start. See our prompt injection guide.
FAQ
What is Sharding?
Sharding is a slash command for Claude Code and Claude Cowork from the jeremylongshore/tons-of-skills-marketplace repository on GitHub. Implement horizontal database sharding for massive scale applications
How do I install Sharding in Claude Code?
Download sharding.md from the repository. Save it to ~/.claude/commands/ (all projects) or .claude/commands/ (one project). As a skill, you can instead save it as ~/.claude/skills/<name>/SKILL.md. Run it by typing / followed by its name.
Can I use Sharding in Claude Cowork?
Turn the command into a skill: create a folder with the file saved as SKILL.md and zip it. In Customize → Skills, click +, then upload the ZIP. Run it from any task with / and the skill name.
Is Sharding safe to install?
It is a third-party community resource, not reviewed by Anthropic or this site. Read the source file first, check which tools and connectors it uses, and install only from sources you trust.
Similar resources
- Record Start, stop, pause, or mark moments in screen recordings with organized file Slash Command · jeremylongshore/tons-of-skills-marketplace
- Red Plans and documents red team exercises — pen test scopes, attack path documentation, CVSS-scored finding reports, and OSINT reconnaissance plans. Use when scoping a pen test or writing a security assessment. Trigger with \"plan a pen test\", \"write a red team report\". Subagent · jeremylongshore/tons-of-skills-marketplace
- Registry Manage Manage container registries (ECR, GCR, Harbor) Slash Command · jeremylongshore/tons-of-skills-marketplace
- Regression Test Tracker Track and run regression tests to ensure new changes don't break existing functionality Plugin · jeremylongshore/tons-of-skills-marketplace
- Shipwright Build Build a new app from a plain-English description Slash Command · jeremylongshore/tons-of-skills-marketplace
- Severity Classify Classify an issue, finding, or vulnerability by severity level (S1-S4) Slash Command · jeremylongshore/tons-of-skills-marketplace
- Shipwright Enhance Add features to an existing Shipwright project Slash Command · jeremylongshore/tons-of-skills-marketplace
- Setup Synthetic Monitoring Set up synthetic monitoring for application Slash Command · jeremylongshore/tons-of-skills-marketplace