System And Data Design logo

System And Data Design

Community
AnastasiyaW
system-and-data-design

Decide whether the system will hold, and where the data lives: requirements and load first, then back-of-the-envelope numbers, building blocks (cache, queue, load balancer, CDN), and the data layer in depth — storage engines, indexes, replication, partitioning, transactions and consistency, batch vs stream. Use when sizing or scaling anything; choosing a database, cache, queue or index; when asked "will this hold", "how many machines", "which database", "do we need a queue", "read replica", "sharding", "eventual consistency", "why is this query slow at scale"; when designing an ingestion or processing pipeline; or when a service is slow under load rather than wrong. Do NOT use for module layout, dependency direction or domain boundaries (use architecture-first), for function- and naming-level quality (use code-complexity), for restructuring code that is already too large (use refactoring-safely), or for a low-traffic internal tool where the honest answer is one process and one database.

Overview

PublisherAnastasiyaW
Repositorycodex-claude-code-config
Skill namesystem-and-data-design
Stars
212
Forks
32
Bundled files
15
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 15 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by AnastasiyaW on GitHub. Read the source before you install it.

Installation

Install the System And Data Design AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/AnastasiyaW/codex-claude-code-config/tree/main/skills/development/system-and-data-design
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/AnastasiyaW/codex-claude-code-config.git /tmp/codex-claude-code-config
mkdir -p .claude/skills
cp -r /tmp/codex-claude-code-config/skills/development/system-and-data-design .claude/skills/system-and-data-design
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable System And Data Design in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads System And Data Design on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so System And Data Design is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

System and data design — will it hold, and where does the data live

Two questions that are usually asked together and answered separately, badly. Capacity without storage internals gives a diagram that cannot be built; storage internals without capacity gives a database choice with no reason behind it.

Scope guard — read first

The most common failure here is answering at the wrong scale.

SituationHonest answer
Internal tool, tens of usersOne process, one database, no cache. Stop.
Product with real traffic, single regionEstimate first; add a cache and a queue only where the numbers say
Multi-region, or data outgrowing one machineFull pass: estimation → building blocks → replication/partitioning → consistency

Adding a cache before measuring is the canonical way to convert one problem into two.

Step 1 — requirements before architecture

  • Functional: what must it actually do? Write it as verbs, not components.
  • Non-functional, with numbers: users, requests/sec at peak, payload size, growth, read:write ratio, acceptable latency, acceptable staleness, retention.
  • Constraints: budget, team size, existing stack, compliance, where data may live.

"Acceptable staleness" is the single most useful number and the one nobody asks for. It decides caching, replication and consistency all at once.

Step 2 — back-of-the-envelope, before any diagram

Estimate storage/day, bandwidth at peak, QPS, and working-set size. The point is not precision; it is discovering that the answer is "one machine" or "this cannot work as described" before drawing anything.

Anchors worth remembering: memory reads are ~100ns, SSD ~100µs, a same-region round trip ~0.5ms, cross-continent ~150ms. Anything crossing a network is ~1000× a memory access — which is why one N+1 query pattern outweighs most micro-optimisation.

Step 3 — building blocks, each with a reason

BlockAdd it whenCost you accept
CacheRead-heavy, tolerable staleness, measured hot setInvalidation becomes your problem
QueueWork can be async; spikes must be absorbedOrdering, retries, duplicate delivery
Read replicaReads dominate; stale reads acceptableReplication lag becomes visible to users
PartitioningOne machine cannot hold data or throughputCross-partition queries and transactions get hard
CDNStatic or cacheable content, geographically spreadPurge and versioning discipline

Each row is a trade, not an upgrade. A block added without its reason written down is a future mystery.

Step 4 — the data layer

  • Storage engines: log-structured (LSM) favours writes and compaction; B-tree favours predictable reads and in-place updates. Choose by the workload's read:write shape, not by brand.
  • Indexes are a write-cost you pay for a read-benefit. An index nobody's query plan uses is pure cost.
  • Replication: single-leader is the default and enough for most systems; multi-leader and leaderless buy availability and pay in conflict resolution you must then design.
  • Partitioning: choose the key by access pattern, not by what looks even. Hot keys and unbounded partitions are the two failures; both are visible in a histogram before they are visible in production.
  • Transactions: know which isolation level you actually get. Read-committed does not prevent lost updates; "we use transactions" is not a consistency argument.
  • Batch vs stream: batch for correctness and reprocessing, stream for freshness. Streams that cannot be replayed lose the ability to fix a bug retroactively.

Review pass

  • Is every component justified by a number, or by habit?
  • What happens at 10× — which part breaks first, and is that acceptable?
  • Where can it lose data, and is that written down?
  • What is the failure mode of each dependency: degrade, queue, or fail loudly?
  • Does any user-visible read cross a replication lag nobody bounded?

References — load on demand

  • references/system-design/four-step-process.md, estimation-numbers.md, building-blocks.md, database-scaling.md, common-designs.md, reliability-operations.md
  • references/ddia-systems/storage-engines.md, data-models.md, replication.md, partitioning.md, transactions.md, batch-stream.md, fault-tolerance.md
  • *-original.md — the source skills' own framework prose, kept verbatim

Gotchas

  • Designing for a scale you do not have. The cost is paid now, the benefit maybe never. Estimate first; the estimate frequently says "one machine".
  • Cache as a fix for a slow query. It hides the query and adds invalidation. Fix the query, then decide about the cache.
  • Eventual consistency chosen by accident. A read replica added for speed silently makes some reads stale. Decide which reads may be stale, and say so.
  • The queue that became a database. Unbounded retention plus a consumer that never catches up is a data store with none of the guarantees of one.

Troubleshooting

SymptomLikely causeWhere to look
Fine in test, slow in productionWorking set exceeds memory; disk seeks per requestStorage engine, index coverage
Latency spikes at intervalsCompaction, GC, or a cron competing for IOStorage engine internals, host metrics
One shard hot, others idlePartition key follows structure, not accessPartitioning
Users see their own write disappearRead served by a lagging replicaReplication, read-your-writes
Duplicate side effectsAt-least-once delivery without idempotencyQueue semantics

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the System And Data Design AI skill do?

Decide whether the system will hold, and where the data lives: requirements and load first, then back-of-the-envelope numbers, building blocks (cache, queue, load balancer, CDN), and the data layer in depth — storage engines, indexes, replication, partitioning, transactions and consistency, batch vs stream. Use when sizing or scaling anything; choosing a database, cache, queue or index; when asked "will this hold", "how many machines", "which database", "do we need a queue", "read replica", "sharding", "eventual consistency", "why is this query slow at scale"; when designing an ingestion or...

Why use System And Data Design on TypingMind?

Because you install it once and use it with any model. System And Data Design is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install System And Data Design in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/AnastasiyaW/codex-claude-code-config/tree/main/skills/development/system-and-data-design. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use System And Data Design?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with System And Data Design?

As many as you like. As long as a model supports skills, you can use System And Data Design with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the System And Data Design AI skill free?

Yes. It is published on GitHub by AnastasiyaW under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇