luoling8192/ai-coding-principles/ddia-principles

Claude Code and agent skill by luoling8192/ai-coding-principles

Trust tier 2
  • community
LLM review pending
Source check pending

Checking that the SKILL.md file is still in the repository.

Designing Data-Intensive Applications (DDIA) distilled reference guide by Martin Kleppmann. MUST be loaded when: designing database schemas, choosing storage engines, implementing replication or partitioning, handling distributed transactions, building batch/stream processing pipelines, choosing consistency models, implementing consensus, designing data flow architectures, evaluating trade-offs between availability and consistency, encoding/serialization decisions, data modeling (relational vs…

Install

npx vskill@latest install luoling8192/ai-coding-principles/ddia-principles

SKILL.md

The same SKILL.md was published earlier as neversight/learn-skills.dev/ddia-principles.

Designing Data-Intensive Applications — Distilled Guide

Source: Martin Kleppmann, Designing Data-Intensive Applications
Central thesis: Data is the core challenge of modern applications — not compute.

Part I: Foundations of Data Systems

Chapter 1: Reliability, Scalability, Maintainability
Three Pillars
PillarDefinitionKey Metric
ReliabilitySystem works correctly even when faults occurFault ≠ Failure; tolerate faults, prevent failures
ScalabilitySystem handles load growth gracefullyMeasure with percentiles: p50, p95, p99, p999
MaintainabilitySystem is easy to operate, understand, evolveOperability + Simplicity + Evolvability
Fault Categories
  • Hardware: Random, independent (disk, RAM, power). Mitigate with redundancy (RAID, dual power).
  • Software: Systematic bugs affecting all nodes simultaneously (leap-second bug). Mitigate with process isolation, monitoring, chaos engineering.
  • Human: #1 cause of outages (config errors). Mitigate with good abstractions, sandboxes, canary deployments, fast rollback.
Scalability Patterns
  • Vertical (scale-up): Bigger machine. Simple but has ceiling.
  • Horizontal (scale-out): More machines (shared-nothing). Complex but unlimited.
  • Elastic: Auto-scale on load detection. Good for unpredictable workloads.

Twitter fan-out case study: 4.6k writes/s but 300k reads/s. Solution: pre-compute timelines (write fan-out) for most users; read-time merge for celebrities.

Performance: Use Percentiles, Not Averages
  • p50 = median. p99 = tail latency matters for user experience.
  • Amazon: 100ms delay = 1% revenue loss.
  • Tail latency amplification: One slow backend call slows entire parallel request.

Chapter 2: Data Models & Query Languages
Model Selection Guide
ModelBest ForWeakness
RelationalStructured data, complex joins, ACID transactionsRigid schema, impedance mismatch with OOP
DocumentHierarchical data, flexible schema, data localityPoor joins, many-to-many relationships
GraphHighly connected data, variable-depth traversalsLess mature tooling, harder to partition
Schema Strategy
  • Schema-on-write (relational): Enforce structure at write time. Early error detection, migration cost.
  • Schema-on-read (document): Interpret structure at read time. Flexible but validation burden on app.
Normalization vs Denormalization
  • Normalize: Single source of truth, consistent updates, requires joins.
  • Denormalize: Faster reads, risks inconsistency, update anomalies.

Trend: Models converge — PostgreSQL supports JSON, MongoDB added joins. Choose based on access patterns, not ideology.


Chapter 3: Storage & Retrieval
Storage Engine Comparison
FeatureB-TreeLSM-Tree
Write throughputLower (in-place update + WAL)Higher (sequential append)
Read latencyMore predictableMay check multiple SSTables
Write amplificationHigherLower
Space efficiencyFragmentation possibleBetter compression
Transaction supportSimpler (lock on tree node)More complex
Used byPostgreSQL, MySQL, OracleLevelDB, RocksDB, Cassandra
OLTP vs OLAP
AspectOLTPOLAP
AccessRandom, few recordsSequential scan, millions of rows
UsersEnd usersAnalysts
DataCurrent stateHistorical events
ScaleGB–TBTB–PB
Optimize forLow latencyThroughput
Data Warehousing
  • ETL: Extract from OLTP → Transform → Load into warehouse.
  • Star schema: Central fact table (events) + dimension tables (attributes). Fact tables can have 100+ columns and petabyte scale.
  • Column-oriented storage: Store each column separately. Huge I/O savings when queries touch few columns. Enables bitmap encoding, run-length compression, vectorized processing.

Chapter 4: Encoding & Evolution
Format Comparison
FormatSize (example)SchemaEvolutionCross-language
JSON81 bytesImplicitManualExcellent
Thrift59 bytesRequiredField tagsGood
Protobuf33 bytesRequiredField tagsExcellent
Avro32 bytesRequiredName matchingGood
Compatibility Rules
  • Backward compatible: New code reads old data. (Always required)
  • Forward compatible: Old code reads new data. (Required for rolling upgrades)
  • Rule: Only add/remove fields with default values. Never reuse deleted field tags.
Data Flow Patterns
  1. Via databases: Multiple code versions coexist during rolling deploys. Data outlives code.
  2. Via services (REST/RPC): Servers update before clients. Backward compat on requests, forward compat on responses.
  3. Via async messaging: Decouples producers/consumers. Supports independent version evolution.

Avoid: Language-specific serialization (Java Serializable, Python pickle) — vendor lock-in + security risk.


Part II: Distributed Data

Chapter 5: Replication
Replication Models
ModelWritesConflictUse Case
Single-leaderOne nodeNoneMost common (PostgreSQL, MySQL)
Multi-leaderMultiple nodesMust resolveMulti-datacenter, offline clients
LeaderlessAny nodeMust resolveCassandra, Riak, Voldemort
Sync vs Async Replication
  • Sync: Durable, blocks on replica failure.
  • Async: Fast, risks data loss on leader failure.
  • Semi-sync: One replica sync, rest async. Practical compromise.
Replication Lag Problems & Solutions
ProblemSymptomSolution
Read-after-writeUser doesn't see own writeRead from leader for user's own data
Monotonic readsData goes backward in timeStick user to one replica
Consistent prefix readsCausal order violatedWrite causally related data to same partition
Conflict Resolution
  • Last-Write-Wins (LWW): Simple but loses data. Only safe if keys are immutable.
  • Merge: Union values, concatenate, CRDT data structures.
  • Application-level: Return all versions ("siblings"), let app decide.
  • Version vectors: Track causal dependencies per replica.
Quorum: w + r > n
  • w = write acknowledgments, r = read queries, n = total replicas.
  • Sloppy quorum: Accept writes on non-home nodes during partitions (hinted handoff). Improves availability, weakens consistency.

Chapter 6: Partitioning (Sharding)
Partitioning Strategies
StrategyProsCons
Key-rangeEfficient range queriesHotspot risk on sequential keys
HashEven distributionNo range queries
CompoundFirst part hashed, rest sortedMore complex, best of both
Secondary Index Partitioning
  • Local (document-based): Each partition indexes its own data. Writes simple, reads scatter-gather.
  • Global (term-based): Index partitioned by term. Reads efficient, writes update multiple partitions.
Rebalancing
  • Fixed partition count: More partitions than nodes. Redistribute on node changes. (Riak, Elasticsearch)
  • Dynamic: Split/merge based on size. (HBase, RethinkDB)
  • Proportional to nodes: Fixed partitions per node. (Cassandra)
Request Routing
  • Round-robin to any node (node forwards if needed)
  • Routing layer (partition-aware proxy)
  • Client-aware (client knows partition map)
  • ZooKeeper: Authoritative partition → node mapping. Used by HBase, Kafka.

Chapter 7: Transactions
Isolation Levels (Weakest → Strongest)
LevelPreventsAllowsImplementation
Read CommittedDirty reads, dirty writesNon-repeatable reads, lost updatesRow locks + old value copy
Snapshot Isolation+ Non-repeatable readsWrite skew, phantomsMVCC (multi-version)
SerializableEverythingNothing2PL, serial execution, or SSI
Concurrency Anomalies
AnomalyDescriptionExample
Dirty readSee uncommitted dataReading half-written transfer
Dirty writeOverwrite uncommitted dataTwo buyers "winning" same item
Lost updateRead-modify-write raceTwo concurrent counter increments
Write skewDecision based on stale readTwo doctors both going off-call
PhantomNew rows change query resultMeeting room double-booking
Serializable Implementations
  1. Serial execution: Single thread, in-memory. Fast but limited throughput. (VoltDB, Redis)
  2. Two-Phase Locking (2PL): Shared/exclusive locks held until commit. Strong but slow, deadlock-prone.
  3. SSI (Serializable Snapshot Isolation): Optimistic — execute freely, detect conflicts at commit. Best performance for read-heavy workloads. (PostgreSQL 9.1+)

Chapter 8: Troubles with Distributed Systems
The Three Unreliabilities

Networks: Async packet networks — no delivery guarantee, no timing guarantee. Cannot distinguish crash from network delay. Timeouts are the only failure detector, but no correct timeout value exists.

Clocks:

  • Wall clocks: Can jump backward (NTP correction). Never use for ordering events.
  • Monotonic clocks: Safe for elapsed time, not cross-node comparison.
  • Quartz drift: ~200ppm → 6ms error every 30 seconds.

Processes: GC pauses, VM suspension, page faults — threads stop without warning. A paused node doesn't know time passed.

Key Principles
  • Fault ≠ failure: Design for partial failures. Some nodes work while others don't.
  • Truth is defined by majority: Individual nodes cannot determine system state alone. Quorum votes decide.
  • Fencing tokens: Monotonically increasing tokens prevent zombie processes from corrupting state.
  • Safety vs liveness: Safety (bad things never happen) must hold always. Liveness (good things eventually happen) may have conditions.

Chapter 9: Consistency & Consensus
Consistency Models (Strongest → Weakest)
ModelGuaranteeCost
LinearizabilityBehaves as if one copy, all ops atomicHigh latency, reduced availability during partition
Causal consistencyRespects cause-effect orderingBetter performance, partition-tolerant
Eventual consistencyReplicas converge eventuallyBest performance, weakest guarantee
Linearizability Use Cases
  • Leader election / distributed locks
  • Uniqueness constraints (usernames, filenames)
  • Cross-channel coordination (message queue + storage)
Consensus Algorithms
  • 2PC: Coordinator-based, blocking on coordinator failure. Practical but fragile.
  • Paxos/Raft/Zab: Epoch-based leader election + quorum voting. Non-blocking. Used by etcd, ZooKeeper, Consul.
  • FLP impossibility: Consensus impossible in pure async systems with crashes. Practical algorithms use timeouts.
Total Order Broadcast ≡ Consensus ≡ Linearizable CAS

These three problems are mathematically equivalent. Solving one solves all.

ZooKeeper / etcd Pattern
  • Small consensus cluster (3–5 nodes) for coordination.
  • Linearizable atomic CAS operations.
  • Failure detection via session heartbeats.
  • Applications: leader election, partition assignment, distributed locks, service discovery.

Part III: Derived Data

Chapter 10: Batch Processing
Unix Philosophy → MapReduce
  • Each program does one thing well.
  • Output of one program = input of another.
  • Immutable inputs, deterministic processing.

This is the start of the file. Read the full SKILL.md on GitHub.

Security

  • Security scanPassed, 100 of 100Pattern checks on the skill's files.
  • Model reviewNot runA model review is scheduled for the next rescan.

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

7-day trend score
0

Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/luoling8192/ai-coding-principles/ddia-principles/badge)](https://verified-skill.com/skills/luoling8192/ai-coding-principles/ddia-principles)

Something wrong with this skill or its page? Tell us.