GoThrottle
A distributed, config-driven rate-limiting reverse proxy with modular routing and dynamic throttling policies.
GoThrottle is a config-driven reverse proxy that enables distributed rate-limiting with support for global, per-route, and per-IP throttling. It allows developers to enforce traffic limits and dynamic routing without changing application code, entirely through a declarative config.yaml.
Note:
You must configure your own rate-limits and upstream routes.
Project Overview
GoThrottle is a modular reverse proxy written in Go, designed for scalability and observability. It uses a token-bucket algorithm for request throttling and supports pluggable storage backends like Redis or in-memory stores.
Developers can define routing rules, throttle limits, upstream services, and middleware pipelines directly from configuration — making it suitable for distributed, multi-service architectures.
Key Features
-
Token-Bucket Rate Limiting
Supports global, per-route, and per-IP throttles configurable via YAML. -
Declarative Routing Layer
Define upstream services, paths, and limits without modifying code. -
Pluggable Backend Stores
Built-in support for Redis and in-memory rate limit counters. -
Middleware Pipeline
Request logging, structured JSON output, panic-safe recovery, and more. -
Production-Grade Config System
Full control using a singleconfig.yamlfile.
Technologies Used
| Layer | Tech Stack / Tools |
|---|---|
| Language | Go |
| Rate Limiting Engine | Token Bucket Algorithm |
| Storage Backend | Redis, In-Memory |
| Config System | YAML-Driven |
| Middleware | Custom Chainable Handlers |
| Deployment | Docker, Binary Build |
Why This Project Matters
GoThrottle demonstrates backend systems engineering, traffic control, and high-performance Go design. It highlights practical experience in:
- Building reverse proxies
- Designing middleware pipelines
- Implementing scalable rate-limiting mechanisms
- Managing distributed state with Redis
- Declarative, config-first backend systems
This project reflects the ability to design production-ready infrastructure components, essential in API gateways, platform engineering, and SaaS multi-tenant architectures.