Ticketing Software - React on Microservices Architecture
Ticketing Software – React/NextJS/TypeScript on Microservices Architecture
Ticketing software is a full stack application. On the frontend, it use React and Next JS to present content to users. Each service is created using Node and Express. Data for each service is held in either a Mongo database. The entire app is deployed and runs in Docker containers executed in a Kubernetes cluster. Finally, almost all of the code is written with Typescript.
Benefits of microservice architecture
Since microservices are loosely coupled and have a clearly defined purpose, the application is easier to manage and understand. Here are a few key benefits of using a microservice-based architecture:
- Scalability is easy, as you can think of the whole system as a collection of services, each interfacing with other microservices. This allows you to scale up, down, or out based on the resources needed by individual microservices instead of the entire application (i.e., monolithic architecture).
- Simplified developer experience so that a new developer joining the team does not have to understand the entire system but only the context of the service they are working on. This improves productivity as they can focus on a single code base and its functionality.
- Platform independence and flexibility so that developers can choose the best tools for the job when building services for the system.
Tech Stack
- TypeScript
- NodeJS
- Ingress NGINX
- Docker
- Kubernetes
- Skaffold
- Macos Docker Desktop
Running Application
Configure hostname to your prefer.
https://github.com/openmymai/nodemicroservice.git
cd nodemicroservice
skaffold dev
Browse to http://[hostname]/api/users/signup
Some fixes
From first running, it does not work because it cannot pull ingress-controller image.
Then using following command to find the error.
kubectl describe <error pod>
It display error message.
Then try to pull image using
docker pull <image>
Finally, it’s work and get “Running”.