URL shortener service brief
The service needs public operations to create a short URL, resolve a slug, and read aggregate click statistics. Clients include a browser extension and a mobile app, so contracts must remain backward compatible.
Known constraints:
- Destination URLs are supplied by untrusted users.
- Slugs are six to twelve URL-safe characters.
- A missing slug and an expired slug must be distinguishable to operators, but the public API must not expose internal storage details.
- Statistics may be delayed by up to one minute.
Still undecided:
- Whether callers may request custom slugs.
- Whether links expire by default.
- Whether statistics require authentication.