DEV Community

Pratap Vhatkar
Pratap Vhatkar

Posted on

I built a System Design Simulator – drag, simulate, and break your own architectures in minutes

Hey folks,

I’ve been hacking on a side project: a web-based “System Design Simulator.” It’s like a whiteboard, but you can actually press play and watch your architecture behave (or fail).

What you can do:

Drag-and-drop common pieces: load balancer, API gateway, caches, DBs, queues, even some AI bits.
Hit “Start Simulation” to see latency, error rate, throughput, cache hit rate in real time.
Flip chaos switches: traffic spikes, cache-miss storms, network partitions, component crashes.
Share & remix: every design gets a short link; anyone can fork it and improve.
Built-in hints: it tells you if you forgot an entry point or storage.
Why I made it:

Diagrams don’t fail; systems do. I wanted a fast way to feel trade-offs without spinning up infra.
For interviews and design reviews, it’s nice to ask “what if the cache dies?” and just click a button.
Try it here: "https://paperdraw.dev/"

Quick start: drop Load Balancer → App Server → Cache → DB, press play, then trigger a cache-miss storm.

Would love feedback:

What metrics or failure modes would you add?
Is the start/stop flow obvious enough?
Any presets you want (payments, chat, ingestion)?
Should I add “export GIF of the run” for sharing?
Thanks for taking a look—happy to fix bugs or add features if you ping me.

Top comments (3)

Collapse
 
betoflakes profile image
JR Saucedo • Edited

I was trying to test it, importing my Mermaid file, and I got an API KEY leaked error.

Collapse
 
ronitdahiya profile image
Ronit Dahiya

Nice project! I built something similar but used Rust/WASM for the simulation engine - wrote about the engineering decisions here if you're interested: SysSimulator

Collapse
 
sumitsitesh profile image
Sumit Kumar

Great tool!

Wanted to flag a bug, whenever I click on my name (top-right), it redirects me back to the premium/landing page. Checked the console and found these errors:

CORS block on functions/v1/track-bot (Supabase edge function) - the preflight response is missing the Access-Control-Allow-Credentials: true header, while the request is using credentials include mode.
rpc/record_user_event call is returning a 404 - looks like this Postgres function either doesn't exist anymore or the frontend is referencing an outdated name

Seems like when these two calls fail, the frontend treats it as "logged out" and redirects. Attaching a screenshot below.