Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?


Failed to load latest commit information.
Latest commit message
Commit time

[Stephen Grider] Microservices with Node JS and React [ENG, 2020]

Build, deploy, and scale an E-Commerce app using Microservices built with Node, React, Docker and Kubernetes

My Updatable Version of the final project from this course

How to run apps

I am working in ubuntu linux 18.04.

Minikube, Kubectl, Docker, Skaffold should be installed.

Skaffold installation

$ curl -Lo skaffold

$ chmod +x skaffold
$ sudo mv skaffold /usr/local/bin

Run minikube

$ {
minikube --profile my-profile config set memory 8192
minikube --profile my-profile config set cpus 4

// minikube --profile my-profile config set vm-driver virtualbox
minikube --profile my-profile config set vm-driver docker

minikube --profile my-profile config set kubernetes-version v1.18.2
minikube start --profile my-profile

// Enable ingress
$ minikube addons --profile my-profile enable ingress

$ minikube --profile my-profile ip

$ sudo vi /etc/hosts
# Minikube

How to run the final app1

$ 04_Orchestrating_Collections_of_Services_with_Kubernetes
$ cd skaffold

$ docker login

Need to update my docker image name webmakaka/grider-ms-app1*** to your in scripts from skaffold and k8s folders.

$ skaffold dev

$ kubectl get pods
NAME                              READY   STATUS    RESTARTS   AGE
client-depl-99b7fcdcb-jhttp       1/1     Running   0          3m22s
comments-depl-69578db79c-jzdnh    1/1     Running   0          3m22s
event-bus-depl-7c5b75b7f4-m5qw6   1/1     Running   0          3m22s
moderation-depl-d7b49bfbc-cgl2l   1/1     Running   0          3m22s
posts-depl-78647cffd4-7gtzx       1/1     Running   0          3m22s
query-depl-656f9b6b58-bv7g7       1/1     Running   0          3m22s

browser -->

How to run the final app2

$ kubectl create secret generic jwt-secret --from-literal=JWT_KEY=asdf

$ kubectl create secret generic stripe-secret --from-literal=STRIPE_KEY=<STRIPE_SECRET_KEY>

$ cd 22_Back_to_the_Client
$ cd skaffold

$ docker login

Need to update my docker image name webmakaka/grider-ms-app2*** to your in scripts from skaffold and k8s folders.

$ skaffold dev

$ kubectl get pods
NAME                                           READY   STATUS    RESTARTS   AGE
auth-deployment-57d779fd9-48s9v                1/1     Running   0          24s
auth-mongo-deployment-579c6dbd8f-69jbv         1/1     Running   0          23s
client-deployment-f5cfc5b8d-k2lxp              1/1     Running   0          23s
expiration-deployment-6bb67856b4-jkkbl         1/1     Running   0          23s
expiration-redis-deployment-5b58b869fd-hmq5f   1/1     Running   0          23s
nats-deployment-76479997ff-lpss8               1/1     Running   0          23s
orders-deployment-5c68dff5c9-dq6hl             1/1     Running   0          23s
orders-mongo-deployment-6896c8b9-42vpd         1/1     Running   0          23s
payments-deployment-68d4c7f4ff-nfsxb           1/1     Running   0          23s
payments-mongo-deployment-c89cb4fc7-4ggn7      1/1     Running   0          23s
tickets-deployment-7b746fff9-tvhzw             1/1     Running   0          23s
tickets-mongo-deployment-54f456bd95-hv9fb      1/1     Running   0          22s

chrome browser -->

type: thisisunsafe in the browser window with security warning.

Expected result:


Delete minikube with project

$ minikube --profile my-profile stop && minikube --profile my-profile delete

Development step by step


02. A Mini-Microservices App

03. Running Services with Docker (Docker Basics. Nothing Interesting)

04. Orchestrating Collections of Services with Kubernetes


05. Architecture of Multi-Service Apps

06. Leveraging a Cloud Environment for Development (Optional Section, Skipped)

07. Response Normalization Strategies

08. Database Management and Modeling

09. Authentication Strategies and Options

10. Testing Isolated Microservices

11. Integrating a Server-Side-Rendered React App

12. Code Sharing and Reuse Between Services

13. Create-Read-Update-Destroy Server Setup

14. NATS Streaming Server - An Event Bus Implementation

15. Connecting to NATS in a Node JS World

16. Managing a NATS Client

17. Cross-Service Data Replication In Action

18. Understanding Event Flow

19. Listening for Events and Handling Concurrency Issues

20. Worker Services

21. Handling Payments

22. Back to the Client

23. CI/CD (I will not deploy app to clouds)


Any questions in english: Telegram Chat
Любые вопросы на русском: Телеграм чат