RLFT-Arch-Simulator is a simulation of an architecture for a rate-limited fault-tolerant server implemented in GoLang. Please note that this project does not represent a real server, nor does it send or process requests like an actual server. Instead, it provides a simulated environment for exploring and understanding the architectural concepts involved in building a rate-limited fault-tolerant server.
The RLFT-Arch-Simulator project aims to demonstrate the principles of building a rate-limited fault-tolerant server using GoLang. While it does not function as a production server, it serves as a valuable educational tool for those interested in understanding the underlying architecture of such systems.
Description: A visual representation of the RLFT architecture.
Components
The cluster's job is to create, spawn and monitor nodes health.
Handle requests and sends response back to client (max k reqs at the time i.e each node is rate-limited)
- sendRequest routine - sends requests to a single channel (unbuffered)
- responseGrabber routine - receives response from nodes
- Simulation of rate-limited fault-tolerant server architecture.
- Written in GoLang, making it easy to explore the codebase.
- Educational resource for learning about server architecture concepts.
To get started with RLFT-Arch-Simulator, you can follow these steps:
-
Clone the repository to your local machine:
git clone https://github.com/anurag0608/RLFT-Arch-Simulator.git
-
cd RLFT-Arch-Simulator
-
go run .
This project primarily serves an educational purpose. You can explore the code files to gain insights into the architecture of a rate-limited fault-tolerant server. Feel free to modify and experiment with the code to better understand the concepts involved.
Contributions to RLFT-Arch-Simulator are welcome! If you'd like to contribute to the project, please follow these steps:
- Fork the repository.
- Create a new branch for your feature or bug fix:
git checkout -b feature/your-feature-name
- Make your changes and commit them:
git commit -m "Add your commit message here"
- Push your changes to your fork:
git push origin feature/your-feature-name
- Open a pull request on the original repository.
I encourage contributions that improve the clarity and educational value of the project.
This project is licensed under the MIT License. Feel free to use, modify, and distribute it as per the terms of the license.