Skip to content

A distributed rate-limiting solution built with Go and Redis, designed to control API traffic and ensure system stability. Supports multiple rate-limiting policies and is scalable with Docker for easy deployment.

License

Notifications You must be signed in to change notification settings

neelp03/ThrottleX

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ThrottleX

ThrottleX is a high-performance, distributed rate-limiting solution built with Go and Redis, designed to manage and control API traffic across multiple instances. It is scalable, fault-tolerant, and optimized for both microservice and public API architectures. ThrottleX supports various rate-limiting policies to ensure system stability under heavy load, and it’s easily deployable using Docker and Kubernetes.


Features (Planned)

  • Distributed Rate Limiting: Efficiently manage API requests across multiple instances using Redis for distributed coordination.
  • Multiple Policies: Implement various rate-limiting strategies, such as fixed window, sliding window, and token bucket.
  • Scalable Architecture: Designed to run in distributed environments with Docker and Kubernetes.
  • API Key Management: Supports API key-based authentication and user-level rate limiting.
  • Real-Time Monitoring: Integration with Datadog, Prometheus, or Grafana for monitoring request traffic and system health.
  • Detailed Logging: Structured JSON logging with log levels for better debugging and observability.

Tech Stack (Planned)

  • Go: Backend implementation.
  • Redis: For caching and distributed coordination.
  • PostgreSQL: For API key management (optional).
  • Docker: For containerization.
  • Kubernetes (Minikube): For orchestration and scalability.
  • Prometheus/Grafana: For real-time monitoring (optional).
  • Logrus: For leveled JSON logging.

Installation and Setup (Planned)

  1. Clone the Repository:

    git clone https://github.com/neelp03/throttlex.git
    cd throttlex
  2. Environment Setup:

    • Ensure you have Docker and Go installed.
    • Set up Redis and PostgreSQL (if required).
    • Future instructions for environment variables and configurations will be provided.
  3. Build and Run: This section will contain detailed steps on building the application, running it locally, and testing it with Docker and Kubernetes.


Usage (Planned)

ThrottleX will provide a REST API to configure rate limits and monitor API traffic. Example usage and API documentation (with OpenAPI/Swagger) will be added once the initial development is complete.


Contributing

Currently, this is a personal project in the early stages of development. Contributions and feature requests are welcome as the project progresses.


License

This project will be released under the Apache 2.0. Please see the LICENSE file.

About

A distributed rate-limiting solution built with Go and Redis, designed to control API traffic and ensure system stability. Supports multiple rate-limiting policies and is scalable with Docker for easy deployment.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published