EN:
A simple demo application for rabbitmq and docker learners in Typescript.
This is only intended to show demo and not to be used on production.
Tech Stacks used:
- Typescript
- Nodejs
- NextJs
- Mongodb
- Websocket
- Rabbitmq
- Docker
The idea is simple. We have a Gateway service which acts as a door or proxy for other apis. It will contain basic authentication and authorization. It connects with other services using REST apis. Auth Service has functions related to user registration and login. Product service has functions related to product. Meanwhile it is also connected with Order and Payment service using Messaging queues. Notification Service will emit event using websocket once payment is processed using payment service. Payment and notification are also connected using message queues. If you want to decouple more. You can follow clean architecture/SOLID principle on each services.
.env example:
PORT= 8081
DATABASE= mongodb://mongo:27017/bikerent-order
How to Run:
-- Clone the project
-- On each service directory set .env file with PORT and DATABASE as variables. If you want to run database container then you need to set your service name inside hostname instead of localhost on env file.
-- Run command "docker-compose up" or run command "make run-dev"
You can use the uploaded postman collection. For testing websocket, postman has an availability on beta.
%%Demo purpose only%%
Feedbacks using issues and features updates using pull request are appreciated
Thank you. :)
Currently in verge of extension to frontend
// things to fix:
- Message Peristency in the queue