For a detailed dive into the high level design and implementation, please see the report.
The required dependencies will be installed simply by running:
go mod tidyTo set up protobuf for golang, install go plugins for the protocol compiler as in the docs.
We also need to build from the protobuf files, and create the certificates required for authentication. For this, simply run:
bash setup.shTo launch a server:
cd server
go run *.goTo launch a client:
cd client
go run *.go -load_balancer <load balancing policy>- The
wait timebefore a ride request offerred to a client (driver) is reassigned, and thenumber of reassignemntsbefore a ride request is cancelled outright, can be changed in the config. - The
load balancingpolicy is a hyper-parameter to the client program.
- consider implementing the enhancements mentioned in the report