◇ Introduction
Core concepts
The six primitives Kendall uses to model a distributed system.
Designs
A design is one saved topology: a list of service nodes, a list of VPC containers, and a list of annotations (text, image, area). Designs are owned by you, live in your dashboard, and auto-save every 800ms after any edit.
Services
A service is a node on the canvas — a database, a compute server, a cache, a queue. Every service belongs to a category (the queueing-model class it maps to) and a provider (where it runs):
| Category | Examples | Default queue model |
|---|---|---|
| compute | EC2, Lambda, Cloud Run, App Service | M/M/c |
| network | ALB, API Gateway, CloudFront, Front Door | M/M/c |
| database | RDS, Aurora, Cloud SQL, Cosmos, DynamoDB | M/G/c |
| cache | ElastiCache, Memorystore, Redis, Memcached | M/M/1 |
| queue | SQS, Kinesis, Pub/Sub, Kafka, Event Hubs | M/M/c/K |
| storage | S3, Cloud Storage, Blob Storage | M/G/c |
| cdn / observability / security / ai | CloudFront, Datadog, WAF, Bedrock, Vertex AI | varies |
See the math reference for what each queueing model implies about latency and rejection rates under load.
VPC containers
A VPC containeris a region boundary — drop services into it and they're grouped. Drag the VPC and its children move together. Delete it and the children detach (matching Cloudcraft's behaviour). VPCs auto-resize to fit services dropped past their edges, and have a CIDR caption, editable label, and per-VPC accent colour (AWS amber, GCP blue, Azure cyan, Region purple, Slate).
Annotations
Three annotation kinds let you mark up the canvas without creating real services:
- Text — 3D plinth with text laid flat on top, for callouts and section headers
- Image — textured plane (upload a file or paste a URL), for logos and reference screenshots
- Area — floor rectangle with a label, for grouping things visually without VPC semantics
Simulations
Coming soon. The simulator runs a discrete-event SimPy simulation against your design, streams progress events over WebSocket at 10 Hz, and reports per-service utilisation, p50/p95/p99 latency, request rejection rates, and cost. End-to- end percentiles are computed from raw traces (not naively summed from per-station summaries).
Recommendations
Coming soon. After a simulation, Kendall feeds the resulting metrics to Claude Sonnet. The model returns structured Pydantic recommendations of the form {component_id, problem, suggested_fix, projected_impact, cost_delta_per_mo, confidence}. The model only suggests fixes — projected impact is computed by re-running the simulator with the suggested change applied, so numbers are grounded in queueing theory, not generated.