How anant-agarwal12/redirecthub works
RedirectHub is a payment-link shortening and redirect service. Clients create links through /shorten, where the server stores a link, encodes its generated ID as a Base62 code, and returns the short link. On redirects, the server rate-limits requests, checks Redis before PostgreSQL, validates expiry, and responds with a redirect or error; click logging runs asynchronously. The README also documents cache metrics and expiry behavior. Source excerpts show the runtime entry point and storage modules; deployment topology and other unsampled implementation details are not mapped.
Main entry points: index.js Express Server · db.js Database Access · redis.js Read-Through Cache · rateLimit.js Rate Limiter
Components 13
HTTP API
- Express Server
src/index.js
Link Workflow
- Create Link
src/index.js - Base62 Encoder
src/utils/base62.js - Resolve And Redirect
src/index.js - Expiry Checks
src/index.js
Cache And Limits
- Rate Limiter
src/middleware/rateLimit.js - Read-Through Cache
src/redis.js - Cache Metrics
src/redis.js - Redis
Click Analytics
- Database Access
src/db.js - PostgreSQL
- Async Click Logging
src/db.js
Other components
- Client
Connections 21
- Client → Express Server: HTTP requests
- Express Server → Create Link: dispatches
- Express Server → Resolve And Redirect: dispatches
- Express Server → Rate Limiter: runs middleware
- Rate Limiter → Redis: updates window
- Create Link → Database Access: creates link
- Database Access → PostgreSQL: queries
- Database Access → Create Link: returns ID
- Create Link → Base62 Encoder: encodes ID
- Create Link → Database Access: updates code
- Resolve And Redirect → Read-Through Cache: gets code
- Read-Through Cache → Redis: reads and writes
- Resolve And Redirect → Database Access: looks up on miss
- Resolve And Redirect → Expiry Checks: checks validity
- Expiry Checks → Read-Through Cache: deletes expired entry
- Resolve And Redirect → Read-Through Cache: caches database result
- Resolve And Redirect → Async Click Logging: logs asynchronously
- Async Click Logging → Database Access: inserts click
- Express Server → Cache Metrics: reads metrics
- Cache Metrics → Client: returns metrics
- Express Server → Client: redirects or responds