{"id":21765724,"url":"https://github.com/mutasim77/load-balancer-go","last_synced_at":"2025-08-16T17:04:38.566Z","repository":{"id":246717708,"uuid":"821586574","full_name":"mutasim77/load-balancer-go","owner":"mutasim77","description":"⚖️ A simple, efficient load balancer implemented in Go 🚀","archived":false,"fork":false,"pushed_at":"2024-06-30T05:27:22.000Z","size":10,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-16T01:26:56.133Z","etag":null,"topics":["balancer","go","golang","load-balancer","reverse-proxy"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mutasim77.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-28T22:24:38.000Z","updated_at":"2024-06-30T05:27:25.000Z","dependencies_parsed_at":null,"dependency_job_id":"3e7a4df4-d86f-40b8-9df0-75ee921fc8c9","html_url":"https://github.com/mutasim77/load-balancer-go","commit_stats":null,"previous_names":["mutasim77/load-balancer-go"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mutasim77/load-balancer-go","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mutasim77%2Fload-balancer-go","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mutasim77%2Fload-balancer-go/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mutasim77%2Fload-balancer-go/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mutasim77%2Fload-balancer-go/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mutasim77","download_url":"https://codeload.github.com/mutasim77/load-balancer-go/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mutasim77%2Fload-balancer-go/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270742043,"owners_count":24637504,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-16T02:00:11.002Z","response_time":91,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["balancer","go","golang","load-balancer","reverse-proxy"],"created_at":"2024-11-26T13:13:39.108Z","updated_at":"2025-08-16T17:04:38.377Z","avatar_url":"https://github.com/mutasim77.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Projects Banner](https://github.com/mutasim77/load-balancer-go/assets/96326525/20b53b70-fbf6-498b-a693-eb9ebe4a73c5)\n\n\u003ch2 align=\"center\"\u003e\n  A simple, powerful, and extensible load balancer written in Go!\n\u003c/h2\u003e\n\n## 🌟 Introduction\n\nWelcome to the Go Load Balancer project! This load balancer efficiently distributes incoming network traffic across multiple backend servers, ensuring no single server bears too much load. It's perfect for improving the reliability and scalability of your web applications.\n\n\n## 🤔 What is a Load Balancer?\n\nA load balancer acts as a traffic cop for your web applications. It:\n- Distributes client requests across multiple servers\n- Ensures high availability and reliability by sending requests only to online servers\n- Provides the flexibility to add or subtract servers as demand dictates\n\n![load-balancer](https://github.com/mutasim77/load-balancer-go/assets/96326525/1eca2535-54e9-419f-9f29-059c4618c037)\n\n## 🔄 About Round Robin Algorithm\n\nThis project implements the Round Robin algorithm for load balancing. Here's how it works:\n\n1. Imagine your servers lined up in a circle\n2. For each new request, the load balancer picks the next server in line\n3. When it reaches the last server, it starts over from the beginning\n\nIt's simple, fair, and effective for many use cases!\n\n## ⚙️ How It Works\n\n1. The load balancer receives incoming requests\n2. It checks the health of all backend servers\n3. Using the Round Robin algorithm, it selects a healthy server\n4. The request is forwarded to the chosen server\n5. The server's response is returned to the client\n\n## 🎯 Features\n\n- ✨ Simple Round Robin load balancing\n- 🏥 Health checks for backend servers\n- 🔄 Automatic removal of unhealthy servers\n- 🚦 Concurrent request handling\n- 🔧 Easy to extend with new balancing strategies\n\n## 📊 Usage\n\nThis project uses a Makefile for easy building and running. Here are the main commands:\n```bash\n# Build the project\nmake build\n\n# Run the load balancer\nmake run-load-balancer\n\n# Run backend servers\nmake run-backends\n\n# Run a test\nmake test\n\n# Stop backend servers\nmake stop-backends\n\n# Clean up\nmake clean\n```\n\n## 🚀 Getting Started\n1. Clone this repository\n2. Run `make build` to compile the load balancer and backend servers\n3. Start the backend servers with `make run-backends`\n4. In a new terminal, start the load balancer with `make run-load-balancer`\n5. Test it out with `make test`\n\n## 🤝 Contributing\nContributions are welcome! Feel free to submit a Pull Request.\n\n## 📜 License\nThis project is licensed under the [MIT License](./LICENCE)\n\nHappy load balancing! 🎉\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmutasim77%2Fload-balancer-go","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmutasim77%2Fload-balancer-go","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmutasim77%2Fload-balancer-go/lists"}