Skip to content

gabrielcora20/pix-demo-project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Módulo de Pagamentos Pix

Descrição

Com o objetivo de cadastrar e consultar registros referentes a pagamentos Pix, desenvolvi o atual projeto com o foco no processamento otimizado e confiável das informações. Em conjunto com os endpoints, foram implementadas ferramentas de observabilidade para prevenção de falhas inesperadas nos clusters.

Serviços

A aplicação conta com os seguintes serviços:

Tecnologias Utilizadas

  • Código fonte escrito em Kotlin e Spring Boot 3.
  • Optei por desenvolver a solução em um banco de dados MongoDB por se tratar de apenas um domínio sem relacionamentos.
  • Tratativa de Log utilizando Grafana Loki.
  • Desenvolvimento da solução em microserviços, diminuindo a chance de indisponibilidade.
  • Arquitetura em Camadas (Application, Domain, Infra), utilizando o padrão CQRS, com o objetivo de separar as operações de escrita e leitura, corroborando para a elaboração de um código potencialmente escalável a longo prazo.
  • Event Driven para o disparo de eventos nas alterações realizadas pelo sistema. Além de garantir tratativas especialistas para cada tipo distinto de evento.
  • Orquestração dos microserviços implementada com load balancer em NgInx gerenciando qual dos quatro clusters deverá ser chamado.
  • Grafana Tempo para manipulação de dados de telemetria.
  • Open Telemetry Collector para o recebimento dos dados de telemetria diretamente da aplicação e realização do envio ao Grafana Tempo
  • Prometheus para registro de métricas e acompanhamento dos alertas.
  • Grafana para visualização das informações de observabilidade capturadas de todas as ferramentas (Grafana Tempo, Prometheus, Grafana Loki)
  • Para os testes unitários, foram utilizadas as bibliotecas JUnit e Mockito (embora os testes unitários tenham concentrado-se na camada de domínio, a replicação para as outras camadas também tem grande relevância e merece atenção).
  • Documentação dos endpoints da api desenvolvida em Swagger
  • Contêineres gerenciandos via Docker e Docker Compose.

Instruções de Instalação

Pré-requisitos

Executando o projeto

  • Baixe o projeto
    git clone git@github.com:gabrielcora20/pix-demo-project.git
  • Entre na pasta do projeto
    cd pix-demo-project
  • Suba a aplicação no Docker
    docker-compose up -d --build

Credenciais de acesso

  usuario: pix
  senha: bj0uIVfZAj7O5y94gC1yVPStPfw5xFxQpburWjvUIgnYeFxs7L
  String de conexão: mongodb://pix:N5Hn3cHgeP27JGlt7g4ASy6O8zXLNm228sjKxEn8@localhost:27017/pix?authSource=admin
  usuario: pix
  senha:  ZiU42veV7Ud48A0dyb9ASgYsHbR6Un

Observações

  • Caso passe um tempo e a porta 80 não retornar nada, por favor reinicie o container "Presentation" e tente novamente (implementei um healthcheck para subir apenas quando todas as instâncias estivessem rodando, mas tive alguns problemas na elaboração e tive de reverter).

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages