Checking vibed PRD for feature building. see how it goes.

Just checking out some common system design questions out there.
Here's my "build a URL shortener" design system. The image could be improved, but I tried answering it in one shot.
This system doesn't consider the analytics side, and the system is covering the creation of a short URL and the visiting of the short URL. #systemdesign
TL;DR for rate limiting algo.
Fixed window - simple needs and predictable window resets
Sliding window - traffic smoothing at high volume
Token bucket - burst support and memory efficient. Can be difficult to tune out
Now, one you picked best to a certain scenario, choose a sensible keys.
Visitor(aka unauth) - IP address, device fingerprint, uniq installation ID
Apps - key on userID
API - key on API key