From 993842a4878aee32fc8b94b766faec0d71f6fc7d Mon Sep 17 00:00:00 2001 From: morteza-mortezai Date: Mon, 5 Jun 2023 21:14:41 +0430 Subject: [PATCH] img --- README.md | 5 ++++- document/1.PNG | Bin 0 -> 27140 bytes 2 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 document/1.PNG diff --git a/README.md b/README.md index 0c6f51d..c7166f9 100644 --- a/README.md +++ b/README.md @@ -11,8 +11,11 @@ ## Description -[Nest](https://github.com/nestjs/nest) framework TypeScript starter repository. +this project is consist of three microservices ,*Gateway* ,*Users* and *Mailer* , +they communicate each other throw rabbitMq . +client request is recived by gateway and after validation, it is send to related microservice and then result will be sent back . +Nest Logo ## Installation ```bash diff --git a/document/1.PNG b/document/1.PNG new file mode 100644 index 0000000000000000000000000000000000000000..143d08bf7556c53c0978f973d8606cd50a6b7fcb GIT binary patch literal 27140 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 ec>oKjS;D