GuicPay Simplificado - Desafio PicPay Backend
Este projeto é uma implementação simplificada do backend do PicPay, desenvolvido como parte do desafio proposto pelo PicPay.
Stack 🔋
- Golang: Linguagem de programação, compilada, rápida, multi-paradigmas e concorrente.
- PostgreSQL: Banco de dados SQL utilizado para armazenar dados persistentes, usufruindo da capacidade de transações atômicas garantindo consistência.
- Redis: Sistema de armazenamento em cache atuando como um serviço de lock distribuído.
- DDD (Domain-Driven Design): Metodologia para organizar o código em torno das regras de negócio, onde a modelagem do problema é o mais importante.
- Clean Architecture: Estrutura de código que enfatiza a separação de responsabilidades e a independência das camadas e não dependendo de framework.
Modelagem de Domínio
A imagem acima ilustra a modelagem de domínio do GuicPay simplificado. Cada entidade e sua relação refletem a estrutura fundamental do sistema.
Arquitetura do Sistema
A arquitetura do sistema é projetada para ser modular e escalável. Cada camada tem uma responsabilidade específica, facilitando a manutenção e o desenvolvimento contínuo.
Clean Architecture
A implementação do GuicPay Simplificado segue os princípios da Clean Architecture. Essa abordagem enfatiza a separação de interesses, facilitando a compreensão do código, a manutenção e a evolução do sistema.
Como rodar o projeto 🚀
make docker-run
Health Check
curl http://localhost:8080/ping
Documentação
Para acessar a documentação OpenAPI basta acessar a rota /docs/
.