Please read the Medium Story first.
This 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.
gRPC Unary | gRPC Server-side Streaming | |
---|---|---|
Catalog μS | ✅ | |
Offer μS | ✅ | |
Order μS | ✅ | ✅ |
Let's start!
Please make sure Docker is running.
First, clone the repository
git clone https://github.com/uid4oe/grpc-web-demo.git
Then, open a terminal window from the root of the project.
We will just need to create network & execute the docker-compose
command
docker network create grpc-web-demo-alva-net
docker-compose up -d
At this point everything should be up and running!
You can track service logs from containers: catalog
, offer
, order
.
You can access to UI at
http://localhost:3000
Additionally, you can check gRPC-Web Demo UI which has the UI code for this demo.
For 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.
Open a terminal in the project root folder, then;
docker network create grpc-web-demo-alva-net
docker compose --file local.yml up -d
Now let's start microservices locally.
sh start-local.sh
That's great. Everything is set. You can track service logs from your IDE/terminal.
You can use the app through UI (container: ui
) at
http://localhost:3000
If 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.
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.