{"id":13809101,"url":"https://github.com/uid4oe/grpc-web-demo","last_synced_at":"2026-01-17T11:51:36.554Z","repository":{"id":49522381,"uuid":"422885693","full_name":"uid4oe/grpc-web-demo","owner":"uid4oe","description":"Dockerized Go microservices and their envoy proxies for a flow which showcases  gRPC for Web Clients. Check the medium story!!!","archived":false,"fork":false,"pushed_at":"2022-08-14T10:12:29.000Z","size":3402,"stargazers_count":262,"open_issues_count":0,"forks_count":31,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-07-12T21:38:43.297Z","etag":null,"topics":["go","grpc","grpc-go","grpc-web","microservices","streaming"],"latest_commit_sha":null,"homepage":"http://grpc-web.uid4oe.dev","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/uid4oe.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":"2021-10-30T13:15:38.000Z","updated_at":"2025-05-27T06:24:44.000Z","dependencies_parsed_at":"2022-08-12T20:20:13.353Z","dependency_job_id":null,"html_url":"https://github.com/uid4oe/grpc-web-demo","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/uid4oe/grpc-web-demo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uid4oe%2Fgrpc-web-demo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uid4oe%2Fgrpc-web-demo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uid4oe%2Fgrpc-web-demo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uid4oe%2Fgrpc-web-demo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/uid4oe","download_url":"https://codeload.github.com/uid4oe/grpc-web-demo/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uid4oe%2Fgrpc-web-demo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28508461,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T11:50:55.898Z","status":"ssl_error","status_checked_at":"2026-01-17T11:50:55.569Z","response_time":85,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["go","grpc","grpc-go","grpc-web","microservices","streaming"],"created_at":"2024-08-04T01:02:01.827Z","updated_at":"2026-01-17T11:51:36.491Z","avatar_url":"https://github.com/uid4oe.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"# gRPC-Web Demo\n\n\u003cp align=\"center\"\u003e \n\u003cimg src=\"./diagram.png\" width=\"500\" /\u003e\n\u003c/p\u003e\n\n[Deployed, Check it out!](https://alva-grpc.web.app/)\n\nPlease read the [Medium Story](https://medium.com/alva-labs/building-microapps-with-grpc-web-64b7cdf50313) first.\n\nThis repo contains microservices written in Go (gRPC Servers) and their envoy proxy configurations for establishing connection through gRPC-Web with the client (UI). gRPC Unary and gRPC Server-side Streaming examples are available in the services.\n\n|            | gRPC Unary | gRPC Server-side Streaming |\n| :--------: | :--------: | :------------------------: |\n| Catalog μS |     ✅     |                            |\n|  Offer μS  |            |             ✅             |\n|  Order μS  |     ✅     |             ✅             |\n\n![](./ui.gif)\n\n## Installation\n\nLet's start!\n\nPlease make sure Docker is running.\n\nFirst, clone the repository\n\n```bash\ngit clone https://github.com/uid4oe/grpc-web-demo.git\n```\n\nThen, open a terminal window from the root of the project.\nWe will just need to create network \u0026 execute the `docker-compose` command\n\n```bash\ndocker network create grpc-web-demo-alva-net\ndocker-compose up -d\n```\n\nAt this point everything should be up and running!\n\nYou can track service logs from containers: `catalog`, `offer`, `order`.\n\nYou can access to UI at\n\n```bash\nhttp://localhost:3000\n```\n\nAdditionally, you can check [gRPC-Web Demo UI](https://github.com/uid4oe/grpc-web-demo-ui) which has the UI code for this demo.\n\n## Local Development\n\nFor running services in your local environment, we will need MongoDB, PostgreSQL, and envoy proxies (gRPC-Web related). We can use `local.yml` file for setting up MongoDB, PostgreSQL, Catalog Envoy, Offer Envoy, Order Envoy and UI.\n\nOpen a terminal in the project root folder, then;\n\n```bash\ndocker network create grpc-web-demo-alva-net\ndocker compose --file local.yml up -d\n```\n\nNow let's start microservices locally.\n\n```bash\nsh start-local.sh\n```\n\nThat's great. Everything is set.\nYou can track service logs from your IDE/terminal.\n\nYou can use the app through UI (container: `ui`) at\n\n```bash\nhttp://localhost:3000\n```\n\nIf you also want to run UI locally which I would prefer for experimenting full-stack, please stop the container: `ui` and then follow the readme at [gRPC-Web Demo UI](https://github.com/uid4oe/grpc-web-demo-ui).\n\n## Contributing\n\nPull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuid4oe%2Fgrpc-web-demo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fuid4oe%2Fgrpc-web-demo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuid4oe%2Fgrpc-web-demo/lists"}