Skip to content

SamuelLeutner/digital-wallet-api

Repository files navigation

Digital Wallet API

Tecnologias Utilizadas

Este projeto segue uma arquitetura de microsserviços, promovendo escalabilidade e resiliência através de comunicação assíncrona. As principais tecnologias incluem:

  • Hyperf (PHP): API Gateway principal, centralizando o fluxo de requisições e testes.
  • MySQL: Banco relacional para garantir integridade de dados.
  • Redis: Cache e controle de sessões.
  • RabbitMQ: Sistema de mensageria para orquestração de eventos e aplicação do padrão Saga.

Arquitetura

  • Baseada em Event-Driven Architecture (EDA) com consistência eventual.
  • Uso do padrão Saga para controle de transações distribuídas.
  • Circuit Breaker previsto para isolamento de falhas em serviços externos.
  • Separado por escopos de microsserviços: transferências, notificações, compensações e autenticação (futuramente).

Collection Postman

A collection Postman contém os principais endpoints organizados por domínio e escopo da aplicação.

Acessar a collection

Documentações

UML da Arquitetura

UML da arquitetura

Pré-requisitos

  • Docker e Docker Compose

Instalação

1. Clonar o repositório

    git clone https://github.com/SamuelLeutner/digital-wallet-api.git
    cd digital-wallet-api

2. Copiar variáveis de ambiente

  cp .env-example .env

3. Construir o projeto

  docker compose build

4. Subir containers

  docker compose up -d

5. Rodar migrações e seeders

  docker compose exec api_gateway php bin/hyperf.php migrate --seed

6. Verificar qualidade do código

    docker compose run --rm phpqa phpmd app text phpmd.xml | grep -v 'Deprecated'

7. Executar testes

  docker compose exec api_gateway composer test

About

No description or website provided.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors