TeenyURL
Load Balancer
Implementation of application layer load balancer in Go using round robin as the load balancing algorithm. It also health checks the servers before forwarding requests to it. That is, handles a server going offline or coming back online.
Rate Limiter
Implemented various rate limiting algorithms such as the token bucket, fixed window counter, sliding window log and sliding window counter and enabling rate limiter to work across several servers using redis.