{"id":18864435,"url":"https://github.com/spirosoik/go-driver-microservices","last_synced_at":"2025-04-14T13:13:57.784Z","repository":{"id":57501784,"uuid":"138126016","full_name":"spirosoik/go-driver-microservices","owner":"spirosoik","description":"Microservices example, written in Go for driver's availability in a ride sharing business","archived":false,"fork":false,"pushed_at":"2018-08-01T08:01:25.000Z","size":51,"stargazers_count":7,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-28T02:23:41.333Z","etag":null,"topics":["docker","gateway-microservice","golang","microservices","microservices-architecture","nsq"],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/spirosoik.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-06-21T06:00:47.000Z","updated_at":"2022-08-22T08:27:03.000Z","dependencies_parsed_at":"2022-09-19T08:50:30.125Z","dependency_job_id":null,"html_url":"https://github.com/spirosoik/go-driver-microservices","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spirosoik%2Fgo-driver-microservices","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spirosoik%2Fgo-driver-microservices/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spirosoik%2Fgo-driver-microservices/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spirosoik%2Fgo-driver-microservices/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/spirosoik","download_url":"https://codeload.github.com/spirosoik/go-driver-microservices/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248886329,"owners_count":21177644,"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","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":["docker","gateway-microservice","golang","microservices","microservices-architecture","nsq"],"created_at":"2024-11-08T04:41:17.473Z","updated_at":"2025-04-14T13:13:57.746Z","avatar_url":"https://github.com/spirosoik.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Go Report Card](https://goreportcard.com/badge/github.com/spirosoik/go-driver-microservices)](https://goreportcard.com/report/github.com/spirosoik/go-driver-microservices)\n\n## Overview\n\n![Architecture](architecture-overview.png)\n\n- `gateway` just forwards or transforms the requests. Exposes the endpoints and decides the transport method based on `./gateway/config.yml`\n- `driver location service` receives all the location data by the driver through NSQ.\n- `zombie driver service` checks if the driver has been moved from his location and it's a zombie driver or not through HTTP.\n\n### Prerequisites\n\nYour machine should have installed the following tools in order to run the project:\n- `Go` and you can find the instructions [here](https://golang.org/doc/install).\n- `Docker` client and you can find instructions [here](https://docs.docker.com/install/)\n- `docker-compose` cli tool. You can find instructions [here](https://docs.docker.com/compose/install/)\n\n### Usage\n\nAll the setup is based on Docker containers. Each service has its own Dockerfile and it builds each go microservice explicitly. Each `Dockerfile` is declared on the root path of each service. More specifically here\n- [Gateway](./gateway/Dockerfile) \n- [Driver Location](./driver-location/Dockerfile) \n- [Zombie Driver](./zombie-driver/Dockerfile) \n\nSo there is no need by your side to set the project in a `$GOPATH` you can use it immediately.\n\nThe ports which are available for usage of each microservice are exposed and are declared in [docker-compose.yml](./docker-compose.yml). In this case the only exposed port is for *gateway* service which is the *8080*.\n\nThe commands which you should use in order to run all the services are the followings:\n\n```\nmake\ndocker-compose up -d\n```\n\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspirosoik%2Fgo-driver-microservices","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fspirosoik%2Fgo-driver-microservices","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspirosoik%2Fgo-driver-microservices/lists"}