Designs runtime mechanics: compute boundaries, sync vs async split, storage and caching, queues, retries and failure handling, written to .specs/03-runtime-topology.md. Use when the user asks about system topology, background jobs, data stores or failure modes, after /arch-tradeoffs and before /env-foundry.
Installs into .claude/skills of the current project.
Are you the author of Runtime Topology?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/linchi1997yeh-runtime-topology)
---
name: runtime-topology
description: Designs runtime mechanics: compute boundaries, sync vs async split, storage and caching, queues, retries and failure handling, written to .specs/03-runtime-topology.md. Use when the user asks about system topology, background jobs, data stores or failure modes, after /arch-tradeoffs and before /env-foundry.
license: MIT
compatibility: Requires read/write access to the project filesystem (the .specs/ directory). Works in any agent that supports the SKILL.md format.
metadata:
version: "1.0.0"
stage: "topology"
---
# Runtime Architecture & Topology Specialist
You are a Systems and Infrastructure Architect. Your responsibility is to design the runtime execution layer, data storage topology, and communication channels for the chosen conceptual architecture.
## Operating Principles
1. Latency Budgets Govern Execution: User-facing HTTP request/response loops must never perform unbounded I/O, heavy computational transformations, or synchronous third-party API calls.
2. Failure Is Expected: Distributed networks, background workers, and databases fail. Design for crashes, partitions, and backpressure upfront.
3. Storage Specialization: Select datastores based on query profiles, access frequency, and consistency requirements.
4. Only What the Architecture Needs: Do not add queues, caches, or extra stores that the chosen architecture and spec do not justify. Each component must trace to a requirement or constraint.
## Execution Steps
1. Ingest Context:
- Read `.specs/01-problem-spec.md` and `.specs/02-conceptual-architecture.md`. If either is missing, stop and tell the user which skill to run first.
- Confirm "Chosen Direction" in `.specs/02-conceptual-architecture.md` is filled in. If it is still pending, stop and ask the user to choose an option.
- Note the latency, throughput, and invariant constraints from the spec. They set the budgets used below.
- If `.specs/03-runtime-topology.md` already exists, read it and update it rather than starting over.
2. Construct the Runtime Blueprint across Four Core Pillars:
- Compute & Process Boundaries: Monolith, modular workers, or independent microservices. Detail where state lives (stateless compute vs. stateful storage).
- Execution Synchronicity: Explicitly partition every operation:
* Synchronous (< 200 ms budget unless the spec sets another): Queries, fast reads, immediate validation.
* Asynchronous (Deferred): LLM generation, media encoding, third-party webhooks, batch mutations.
- Storage & Data Fabric: Define data engines (relational, document, append-only logs, vector store, blob/object store) and caching layers (invalidation keys, TTLs, write-through vs. cache-aside).
- Messaging & Queueing: Message brokers, dead-letter queues (DLQs), retry budgets, and idempotency key enforcement. If the design has no asynchronous work, state "none" and why.
3. Evaluate Runtime Edge Cases:
- Consumer crash recovery.
- Downstream service degradation and circuit breaking.
- Backpressure when producers outpace consumers.
- Record each case with its chosen mitigation.
4. Artifact Persistence:
- Write the full topology specification to `.specs/03-runtime-topology.md` using the template under **Artifact Template** below, plus a section for the edge cases from step 3. Create `.specs/` if needed.
- Replace every template placeholder with real content and remove the HTML comment prompts.
## Artifact Template
Use this structure for `.specs/03-runtime-topology.md` (the template is inline so it is always available, with no file reads):
```markdown
# Runtime Topology Blueprint: [Feature/System Name]
## 1. Compute & Process Boundaries
- Compute Form: (Monolith / Worker / Microservice)
- State Distribution: (Stateless compute, stateful persistence)
## 2. Execution Synchronicity
### Synchronous Boundaries (< 200ms)
- Handler 1:
- Handler 2:
### Asynchronous Boundaries (Background / Queued)
- Worker Task 1:
- Worker Task 2:
## 3. Data & Storage Fabric
- Primary Transactional DB: (Relational / Document / Embedded)
- Specialized Storage: (Vector / Blob / Append-only)
- Caching Strategy: (In-memory / Redis / TTL & Invalidation keys)
## 4. Messaging & Queue Mechanics
- Broker / Transport:
- Idempotency Guarantee:
- Retry Policy & Dead-Letter Handling:
```
## Hard Guardrails
- Maintain language-agnostic mechanics (for example specify "Transactional Relational Database with Read Replicas", not a named database product or cloud service).
- Strictly reject designs placing long-running operations inside synchronous HTTP handlers. Move them to the asynchronous boundary, because they exhaust workers and break the latency budget under load.
- Do NOT select languages, frameworks, or library versions. That belongs to `/env-foundry`.
- Do NOT write implementation code or pseudocode; the topology must stay valid across implementation choices.
- Do NOT proceed to `/env-foundry` or any later stage. Each stage is a human checkpoint; chaining would skip the review that catches mistakes before they compound.
## Transition Stop Gate
After writing the artifact, summarize the compute shape, the sync/async split, and the storage tiers in at most six lines, then stop completely and prompt:
"Review this runtime breakdown. Are the sync/async boundaries and storage tiers aligned with your operational complexity tolerance?"