An open API service indexing awesome lists of open source software.

https://github.com/samuel-ricardo/ems_user

User Microsservice for a email service application with RabbitMQ and Spring Framewrok
https://github.com/samuel-ricardo/ems_user

Last synced: 3 months ago
JSON representation

User Microsservice for a email service application with RabbitMQ and Spring Framewrok

Awesome Lists containing this project

README

        

# Email Microservice - [USER]





🚀 🟧 Email Microservice 🟧 🚀


User Microservice of an Email Messenger System based on @MichelliBrito's classes


|  
Overview   |   
Technologies   |   
Project   |  
Routes   |   
Run   |  
Author   |   

#








| 🛰️ About:


This application is an implementation of a Microservices Architecture using RabbitMQ for queue communication and the best practices of Clean Architecture, SOLID and DDD, all documented. Use Docker to handle the entire system structure.

:octocat: | Email Microservice: [ https://github.com/Samuel-Ricardo/ems_email ]



| 🏗️ - Technologies and Concepts Studied:

>


- Spring Framework
- RabbitMQ
- PostgreSQL
- Docker
- Microservice
- Communication Between Microservices
- Maven
- REST
- Swagger
- Validation
- Lombok
- Environment
- Clean Architeture
- DDD
- JUnit
- H2 Database
- Error Handler

> Among Others...

#


💻 | Application:



Giving an overview, this architecture is divided into User Microservice and Email Microservice, each with its own databases, communication between them occurs through a broker which in this case is based on asynchronous queues managed by RabbitMQ


🕺 | User

:shipit: | Repository: [ https://github.com/Samuel-Ricardo/ems_user ]



The main function of User Microservice is to list and register users in a database. When a user is saved in this MS, it publishes this event to the broker.


📧 | Email

:shipit: | Repository: [ https://github.com/Samuel-Ricardo/ems_email ]



The main function of the Email Microservice is to send a welcome email to new users, for this it listens to the broker, when a created user event is published this MS consumes this event and sends an email to this new created user welcoming .


📮 | Broker


The broker is an intermediary between microservices, it receives events and store in a Queue Data Structure that is triggered and can be consumed by other microservices that are waiting for it to react.


🌱 | Example

>
>
>
>


#


👨‍💻 | How to use


### Open your Git Terminal and clone this repository

```git
$ git clone "[email protected]:Samuel-Ricardo/ems_user.git"
```

### Make Pull

```git
$ git pull "[email protected]:Samuel-Ricardo/ems_user.git"
```


This application use `Docker` so you dont need to install and cofigurate anything other than docker on your machine.

>


Navigate to project folder and run it using `docker-compose`

```bash

# After setup docker environment just run this commmand on root project folder:

$ docker-compose up --build # For First Time run this command

$ docker-compose up # to run project

```

```bash

#Apps Running on:

$ USER: http://localhost:8080 - [MICROSERVICE]
$ SWAGGER: http://localhost:8080/swagger-ui/index.html - [DOCS]

$ PostgreSQL: http://localhost:5432 - [DATABASE] | [USER]
$ PGAdmin: http://localhost:5050 - [DATABASE] | [VIEW]

$ RabbitMQ: :5672 - [BROKER]
$ RabbitMQ: http://localhost:15672 - [BROKER] | [VIEW]

See more: docker-compose.yaml

```


#


:octocat: | Author:

>

- Samuel Ricardo