DEV Community 👩‍💻👨‍💻

Hernani Almeida
Hernani Almeida

Posted on • Updated on

Microservices, Docker e Tecnologias de Mensageria

Fala devs nesse post vou detalhar uma aplicação que criei utilizando tecnologias de mensageria (Kafka e fila(ActiveMq)) que são utilizadas para ligar aplicações independentes que se comunicam entre si, traduzindo Microservices :).
Nossa aplicação consiste num cadastro de um Usuário que sera salvo em 3 tipos de database, ElasticSearch, Banco de memoria Redis e para finalizar em um database Sql Postgres.
Para isso teremos 3 APIs (construídas utilizando arquitetura DDD) se comunicando entre si após a requisição do cadastro de um usuário realizada pelo front, vamos detalhar abaixo a função de cada API.

  • API de Acesso - Essa API ira receber a requisição de um cadastro de usuário e produzir uma mensagem em um tópico Kafka para que a mesma seja consumida pela aplicação seguinte.

  • API Orquestradora - Essa API recebe a mensagem produzida pela primeira API acima através de um Listener de um tópico KAFKA que estará captando as mensagem produzidas por este tópico. Apos receber a mensagem a API produz uma mensagem agora numa fila com os dados do usuário e após salva os dados deste usuário dentro do elasticsearch.

  • API ConsumerMq - Essa API recebe a mensagem produzida pela API acima através de um JmsListener e salva este usuário dentro de um banco de dados em memoria (Redis), estes usuarios serao listados no front para ser analisados por um admin e ser definido se valida ou não o cadastro, sendo validado será salvo em um banco de dados Postgres e excluído do banco de memorias Redis, caso seja invalido será excluído do banco de memorias Redis apenas.

Abaixo um simplex fluxograma da nossa aplicação.

Fluxograma

Dito isso bora iniciar o codigo, te espero no proximo post.

Parte 2

linkedin
github

Top comments (2)

Collapse
 
robertluiz13 profile image
RobertLuiz13

Otimo artigo!!!
Pelo que entendi nessa aplicação o Redis serve apenas para validar ,é isso?

Collapse
 
2020nani profile image
Hernani Almeida • Edited on

agradecido @robertluiz13 , isso mesmo o Redis e utilizado ali como um banco de memória, salva em um primeiro momento o usuário e lista ali no front para que alguém válida ou não este cadastro.
Se validado salva definitivo no postgres ou é excluido

Timeless DEV post...

How to write a kickass README

Arguably the single most important piece of documentation for any open source project is the README. A good README not only informs people what the project does and who it is for but also how they use and contribute to it.

If you write a README without sufficient explanation of what your project does or how people can use it then it pretty much defeats the purpose of being open source as other developers are less likely to engage with or contribute towards it.