ddia-systems

Design data-intensive systems using storage engines, replication, partitioning, and consistency models.

Updated Jun 27, 2026
One-click install
npx skills add https://github.com/rachmadideni/ai-staff-assistant --skill ddia-systems-rachmadideni
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: ddia-systems
Source: https://github.com/rachmadideni/ai-staff-assistant/tree/main/.agents/skills/ddia-systems
Command: npx skills add https://github.com/rachmadideni/ai-staff-assistant --skill ddia-systems-rachmadideni

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Choosing databases and designing distributed data systems involves trade-offs across storage engines, replication, partitioning, transactions, and consistency that are easy to get wrong. This Skill provides a structured framework, based on Designing Data-Intensive Applications, to evaluate architectures, diagnose consistency issues, and score designs against proven principles. ## Core Features & Use Cases - Seven-Domain Framework: Covers data models, storage engines (LSM vs B-tree), replication, partitioning, transactions and isolation levels, batch/stream processing, and fault tolerance. - Architecture Scoring: Rates any data architecture 0-10 against explicit trade-off principles and reports the improvements needed to reach 10/10. - Diagnostics and Anti-Patterns: Includes a quick diagnostic checklist and a table of common mistakes such as ignoring replication lag, overusing distributed transactions, and assuming serializable isolation. - Use Case: When deciding between SQL and NoSQL for a new service, debugging stale reads across replicas, or planning a partitioning strategy for time-series data, apply the framework to make the trade-offs explicit. ## Quick Start Ask the assistant to evaluate your database choice and replication strategy for a read-heavy multi-region application using the DDIA framework.

Frequently Asked Questions about ddia-systems

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I choose between SQL and NoSQL databases?▼

Match the data model to your access patterns: relational excels at many-to-many relationships and ad-hoc queries, document models fit self-contained aggregates, and graph models suit relationship traversal. Evaluate read/write ratio, consistency needs, and scaling path rather than popularity.

What is the difference between LSM trees and B-trees?▼

LSM trees buffer writes in memory and flush sorted files sequentially, giving high write throughput but read amplification. B-trees update pages in place, giving predictable read latency but write amplification from page splits. Use LSM for write-heavy workloads and B-trees for mixed OLTP.

Why do I see stale data after writing to my database?▼

Asynchronous replication lag means followers have not yet received your write when you read from them. Fix it with read-your-writes guarantees: read from the leader for recently modified data or track the replication position of your last write.

Should I use hash or range partitioning for my data?▼

Hash partitioning distributes load evenly but destroys sort order, making range queries require scatter-gather. Key-range partitioning supports efficient range scans but risks hotspots on sequential keys like timestamps; use composite keys such as (sensor_id, date) to avoid hotspots.

Is my database's default isolation level serializable?▼

Usually not. Most databases default to read committed or snapshot isolation, which permits anomalies like write skew where two transactions read the same data and write different records. Check your database's actual default and use explicit locking such as SELECT FOR UPDATE where needed.

When should I avoid distributed transactions?▼

Two-phase commit is slow, fragile, and makes the coordinator a single point of failure. Design around single-partition operations instead, and use sagas with compensating actions for cross-service operations like charging a card and reserving inventory.