administering-linux
Manage Linux systems covering systemd services, process management, filesystems, networking, performance tuning, and troubleshooting. Use when deploying…
Document database implementation for flexible schema applications. Use when building content management, user profiles, catalogs, or event logging. Covers MongoDB (primary), DynamoDB, Firestore, schema design patterns, indexing strategies, and aggregation pipelines.
$ npx -y skills add ancoleman/ai-design-components --skill using-document-databases --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/using-document-databasesContext preview
The summary Claude sees to decide when to auto-load this skill.
Document database implementation for flexible schema applications. Use when building content management, user profiles, catalogs, or event logging. Covers MongoDB (primary), DynamoDB, Firestore, schema design patterns, indexing strategies, and aggregation pipelines.
name: using-document-databases description: Document database implementation for flexible schema applications. Use when building content management, user profiles, catalogs, or event logging. Covers MongoDB (primary), DynamoDB, Firestore, schema design patterns, indexing strategies, and aggregation pipelines.
Guide NoSQL document database selection and implementation for flexible schema applications across Python, TypeScript, Rust, and Go.
Use document databases when applications need:
DEPLOYMENT ENVIRONMENT?
├── AWS-Native Application → DynamoDB
│ ✓ Serverless, auto-scaling, single-digit ms latency
│ ✗ Limited query flexibility
│
├── Firebase/GCP Ecosystem → Firestore
│ ✓ Real-time sync, offline support, mobile-first
│ ✗ More expensive for heavy reads
│
└── General-Purpose/Complex Queries → MongoDB
✓ Rich aggregation, full-text search, vector search
✓ ACID transactions, self-hosted or managed| Database | Best For | Latency | Max Item | Query Language | |----------|----------|---------|----------|----------------| | **MongoDB** | General-purpose, complex queries | 1-5ms | 16MB | MQL (rich) | | **DynamoDB** | AWS serverless, predictable performance | <10ms | 400KB | PartiQL (limited) | | **Firestore** | Real-time apps, mobile-first | 50-200ms | 1MB | Firebase queries |
See `references/mongodb.md` for MongoDB details See `references/dynamodb.md` for DynamoDB single-table design See `references/firestore.md` for Firestore real-time patterns
**Use the decision matrix in `references/schema-design-patterns.md`**
Quick guide:
| Relationship | Pattern | Example | |--------------|---------|---------| | One-to-Few | Embed | User addresses (2-3 max) | | One-to-Many | Hybrid | Blog posts → comments | | One-to-Millions | Reference | User → events (logging) | | Many-to-Many | Reference | Products ↔ Categories |
// User with embedded addresses
{
_id: ObjectId("..."),
email: "user@example.com",
name: "Jane Doe",
addresses: [
{
type: "home",
street: "123 Main St",
city: "Boston",
default: true
}
],
preferences: {
theme: "dark",
notifications: { email: true, sms: false }
}
}// Orders reference products
{
_id: ObjectId("..."),
userId: ObjectId("..."),
items: [
{
productId: ObjectId("..."), // Reference
priceAtPurchase: 49.99, // Denormalize (historical)
quantity: 2
}
],
totalAmount: 99.98
}**When to denormalize:**
// 1. Single field (unique email)
db.users.createIndex({ email: 1 }, { unique: true })
// 2. Compound index (ORDER MATTERS!)
db.orders.createIndex({ status: 1, createdAt: -1 })
// 3. Partial index (index subset)
db.orders.createIndex(
{ userId: 1 },
{ partialFilterExpression: { status: { $eq: "pending" }}}
)
// 4. TTL index (auto-delete after 30 days)
db.sessions.createIndex(
{ createdAt: 1 },
{ expireAfterSeconds: 2592000 }
)
// 5. Text index (full-text search)
db.articles.createIndex({
title: "text",
content: "text"
})**Index Best Practices:**
**Validate indexes with the script:**
python scripts/validate_indexes.py
See `references/indexing-strategies.md` for complete guide.
**Key Operators:** `$match` (filter), `$group` (aggregate), `$lookup` (join), `$unwind` (arrays), `$project` (reshape)
**For complete pipeline patterns and examples, see:** `references/aggregation-patterns.md`
Design for access patterns using PK/SK patterns. Store multiple entity types in one table with composite keys.
**For complete single-table design patterns and GSI strategies, see:** `references/dynamodb.md`
Use `onSnapshot()` for real-time listeners and Firestore security rules for access control.
**For complete real-time patterns and security rules, see:** `references/firestore.md`
**Complete implementations available in `examples/` directory:**
**For integration examples, see:** `references/skill-integrations.md`
**Key practices:**
**For complete optimization guide, see:** `references/performance.md`
**Pagination:** Use cursor-based pagination for large datasets (recommended over offset) **Soft Deletes:** Mark as deleted with timestamp instead of removing **Audit Logs:**
Comprehensive UI/UX and Backend component design skills for AI-assisted development with Claude
Repo: ancoleman/ai-design-components
Manage Linux systems covering systemd services, process management, filesystems, networking, performance tuning, and troubleshooting. Use when deploying…
Data pipelines, feature stores, and embedding generation for AI/ML systems. Use when building RAG pipelines, ML feature serving, or data transformations.…
Strategic guidance for designing modern data platforms, covering storage paradigms (data lake, warehouse, lakehouse), modeling approaches (dimensional,…
Design cloud network architectures with VPC patterns, subnet strategies, zero trust principles, and hybrid connectivity. Use when planning VPC topology,…
Design comprehensive security architectures using defense-in-depth, zero trust principles, threat modeling (STRIDE, PASTA), and control frameworks (NIST CSF,…
Assembles component outputs from AI Design Components skills into unified, production-ready component systems with validated token integration, proper import…