# carloshtpf/backend-em-microsservi-os-para-gest-o-de-pagamentos-e-integra-o-com-provedores. architecture

> Architecture diagram of the GitHub repository carloshtpf/backend-em-microsservi-os-para-gest-o-de-pagamentos-e-integra-o-com-provedores., generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-11). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/carloshtpf/backend-em-microsservi-os-para-gest-o-de-pagamentos-e-integra-o-com-provedores.
- Repository: https://github.com/carloshtpf/backend-em-microsservi-os-para-gest-o-de-pagamentos-e-integra-o-com-provedores.

## Overview

Este repositório implementa um backend de gestão de pagamentos com API Gateway e três microserviços. O fluxo principal é a criação de pagamento: o cliente chega ao Gateway, que encaminha a requisição ao serviço de faturamento; este persiste o pagamento e publica um evento para consumidores. Em paralelo, Gestão oferece operações de clientes, planos e assinaturas, e Planos Ativos consulta assinaturas com cache. As relações mostradas vêm do README e das referências do SOURCE INDEX; integrações não confirmadas por esses indícios foram omitidas.

Main entry points: [`servico-gestao/backend/src/server.ts`](https://github.com/carloshtpf/backend-em-microsservi-os-para-gest-o-de-pagamentos-e-integra-o-com-provedores./blob/main/servico-gestao/backend/src/server.ts) (Rotas de gestão), [`servico-faturamento/backend/src/modules/servico-faturamento/application/use-cases/CriarPagamentoUseCase.ts`](https://github.com/carloshtpf/backend-em-microsservi-os-para-gest-o-de-pagamentos-e-integra-o-com-provedores./blob/main/servico-faturamento/backend/src/modules/servico-faturamento/application/use-cases/CriarPagamentoUseCase.ts) (Criar pagamento), [`servico-planos-ativos/backend/src/modules/servico-planos-ativos/application/use-cases/ConsultarPlanoAtivoUseCase.ts`](https://github.com/carloshtpf/backend-em-microsservi-os-para-gest-o-de-pagamentos-e-integra-o-com-provedores./blob/main/servico-planos-ativos/backend/src/modules/servico-planos-ativos/application/use-cases/ConsultarPlanoAtivoUseCase.ts) (Consultar plano ativo), [`api-gateway/backend/src/server.ts`](https://github.com/carloshtpf/backend-em-microsservi-os-para-gest-o-de-pagamentos-e-integra-o-com-provedores./blob/main/api-gateway/backend/src/server.ts) (API Gateway)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entrada["Entrada HTTP"]
  node_gateway["API Gateway<br/>[server.ts]"]
  node_proxies["Proxies HTTP"]
end

subgraph group_faturamento["Faturamento"]
  node_pagamento_api["Rotas e controller"]
  node_criar_pagamento["Criar pagamento"]
  node_pagamento_modelo["Pagamento e contrato<br/>[Pagamento.ts]"]
  node_pagamento_repo["Repositório Prisma"]
  node_faturamento_db[("Banco faturamento<br/>[prismaClient.ts]")]
  node_publisher["Publicador pagamento"]
end

subgraph group_gestao["Gestão"]
  node_consumidor_gestao["Consumidor pagamento"]
  node_gestao_api["Rotas de gestão<br/>[server.ts]"]
  node_clientes["Gestão de clientes<br/>[Cliente.ts]"]
  node_planos["Gestão de planos<br/>[Plano.ts]"]
  node_assinaturas["Gestão de assinaturas"]
  node_gestao_db[("Banco gestão<br/>[prisma.ts]")]
end

subgraph group_ativos["Planos ativos"]
  node_ativos_api["Consulta plano ativo"]
  node_consulta_ativa["Consultar plano ativo"]
  node_cache["Cache Redis"]
  node_gestao_client["Cliente da Gestão<br/>[GestaoApiClient.ts]"]
  node_consumidor_ativos["Consumidor de pagamento"]
end

node_cliente(("Cliente API"))
node_broker["RabbitMQ"]
node_redis[("Redis<br/>[redisClient.ts]")]

node_cliente -->|"envia requisição"| node_gateway
node_gateway -->|"roteia proxy"| node_proxies
node_proxies -->|"encaminha pagamento"| node_pagamento_api
node_pagamento_api -->|"invoca caso"| node_criar_pagamento
node_criar_pagamento -->|"persiste pagamento"| node_pagamento_repo
node_pagamento_repo -->|"grava registro"| node_faturamento_db
node_criar_pagamento -->|"publica evento"| node_publisher
node_publisher -->|"publica evento"| node_broker
node_broker -->|"entrega evento"| node_consumidor_gestao
node_broker -->|"entrega evento"| node_consumidor_ativos
node_gestao_api -->|"expõe operações"| node_clientes
node_gestao_api -->|"expõe operações"| node_planos
node_gestao_api -->|"expõe operações"| node_assinaturas
node_gestao_api -.->|"acessa dados"| node_gestao_db
node_ativos_api -->|"invoca consulta"| node_consulta_ativa
node_consulta_ativa -->|"consulta cache"| node_cache
node_cache -->|"lê e grava"| node_redis
node_consulta_ativa -->|"verifica assinatura"| node_gestao_client
node_gestao_client -.->|"consulta via HTTP"| node_assinaturas

click node_gateway "https://github.com/carloshtpf/backend-em-microsservi-os-para-gest-o-de-pagamentos-e-integra-o-com-provedores./blob/main/api-gateway/backend/src/server.ts"
click node_proxies "https://github.com/carloshtpf/backend-em-microsservi-os-para-gest-o-de-pagamentos-e-integra-o-com-provedores./blob/main/api-gateway/backend/src/proxy/registrarPagamentoProxy.ts"
click node_pagamento_api "https://github.com/carloshtpf/backend-em-microsservi-os-para-gest-o-de-pagamentos-e-integra-o-com-provedores./blob/main/servico-faturamento/backend/src/modules/servico-faturamento/presentation/controllers/PagamentoController.ts"
click node_criar_pagamento "https://github.com/carloshtpf/backend-em-microsservi-os-para-gest-o-de-pagamentos-e-integra-o-com-provedores./blob/main/servico-faturamento/backend/src/modules/servico-faturamento/application/use-cases/CriarPagamentoUseCase.ts"
click node_pagamento_modelo "https://github.com/carloshtpf/backend-em-microsservi-os-para-gest-o-de-pagamentos-e-integra-o-com-provedores./blob/main/servico-faturamento/backend/src/modules/servico-faturamento/domain/entities/Pagamento.ts"
click node_pagamento_repo "https://github.com/carloshtpf/backend-em-microsservi-os-para-gest-o-de-pagamentos-e-integra-o-com-provedores./blob/main/servico-faturamento/backend/src/modules/servico-faturamento/infrastructure/repositories/PrismaPagamentoRepository.ts"
click node_faturamento_db "https://github.com/carloshtpf/backend-em-microsservi-os-para-gest-o-de-pagamentos-e-integra-o-com-provedores./blob/main/servico-faturamento/backend/src/modules/servico-faturamento/infrastructure/database/prismaClient.ts"
click node_publisher "https://github.com/carloshtpf/backend-em-microsservi-os-para-gest-o-de-pagamentos-e-integra-o-com-provedores./blob/main/servico-faturamento/backend/src/modules/servico-faturamento/infrastructure/messaging/PagamentoPublisher.ts"
click node_consumidor_gestao "https://github.com/carloshtpf/backend-em-microsservi-os-para-gest-o-de-pagamentos-e-integra-o-com-provedores./blob/main/servico-gestao/backend/src/modules/servico-gestao/infrastructure/messaging/PagamentoConsumer.ts"
click node_gestao_api "https://github.com/carloshtpf/backend-em-microsservi-os-para-gest-o-de-pagamentos-e-integra-o-com-provedores./blob/main/servico-gestao/backend/src/server.ts"
click node_clientes "https://github.com/carloshtpf/backend-em-microsservi-os-para-gest-o-de-pagamentos-e-integra-o-com-provedores./blob/main/servico-gestao/backend/src/modules/servico-gestao/domain/entities/Cliente.ts"
click node_planos "https://github.com/carloshtpf/backend-em-microsservi-os-para-gest-o-de-pagamentos-e-integra-o-com-provedores./blob/main/servico-gestao/backend/src/modules/servico-gestao/domain/entities/Plano.ts"
click node_assinaturas "https://github.com/carloshtpf/backend-em-microsservi-os-para-gest-o-de-pagamentos-e-integra-o-com-provedores./blob/main/servico-gestao/backend/src/modules/servico-gestao/presentation/controllers/AssinaturaController.ts"
click node_gestao_db "https://github.com/carloshtpf/backend-em-microsservi-os-para-gest-o-de-pagamentos-e-integra-o-com-provedores./blob/main/servico-gestao/backend/src/modules/servico-gestao/infrastructure/database/prisma.ts"
click node_ativos_api "https://github.com/carloshtpf/backend-em-microsservi-os-para-gest-o-de-pagamentos-e-integra-o-com-provedores./blob/main/servico-planos-ativos/backend/src/modules/servico-planos-ativos/presentation/controllers/PlanoAtivoController.ts"
click node_consulta_ativa "https://github.com/carloshtpf/backend-em-microsservi-os-para-gest-o-de-pagamentos-e-integra-o-com-provedores./blob/main/servico-planos-ativos/backend/src/modules/servico-planos-ativos/application/use-cases/ConsultarPlanoAtivoUseCase.ts"
click node_cache "https://github.com/carloshtpf/backend-em-microsservi-os-para-gest-o-de-pagamentos-e-integra-o-com-provedores./blob/main/servico-planos-ativos/backend/src/modules/servico-planos-ativos/infrastructure/cache/RedisCacheService.ts"
click node_redis "https://github.com/carloshtpf/backend-em-microsservi-os-para-gest-o-de-pagamentos-e-integra-o-com-provedores./blob/main/servico-planos-ativos/backend/src/modules/servico-planos-ativos/infrastructure/cache/redisClient.ts"
click node_gestao_client "https://github.com/carloshtpf/backend-em-microsservi-os-para-gest-o-de-pagamentos-e-integra-o-com-provedores./blob/main/servico-planos-ativos/backend/src/modules/servico-planos-ativos/infrastructure/http/GestaoApiClient.ts"
click node_consumidor_ativos "https://github.com/carloshtpf/backend-em-microsservi-os-para-gest-o-de-pagamentos-e-integra-o-com-provedores./blob/main/servico-planos-ativos/backend/src/modules/servico-planos-ativos/infrastructure/messaging/PagamentoPlanoConsumer.ts"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_gateway,node_proxies,node_cliente toneBlue
class node_pagamento_api,node_criar_pagamento,node_pagamento_modelo,node_pagamento_repo,node_faturamento_db,node_publisher,node_redis toneAmber
class node_consumidor_gestao,node_gestao_api,node_clientes,node_planos,node_assinaturas,node_gestao_db toneMint
class node_ativos_api,node_consulta_ativa,node_cache,node_gestao_client,node_consumidor_ativos toneRose
class node_broker toneIndigo
```

## Components

### Entrada HTTP

- [API Gateway](https://github.com/carloshtpf/backend-em-microsservi-os-para-gest-o-de-pagamentos-e-integra-o-com-provedores./blob/main/api-gateway/backend/src/server.ts): `api-gateway/backend/src/server.ts`
- [Proxies HTTP](https://github.com/carloshtpf/backend-em-microsservi-os-para-gest-o-de-pagamentos-e-integra-o-com-provedores./blob/main/api-gateway/backend/src/proxy/registrarPagamentoProxy.ts): `api-gateway/backend/src/proxy/registrarPagamentoProxy.ts`

### Faturamento

- [Rotas e controller](https://github.com/carloshtpf/backend-em-microsservi-os-para-gest-o-de-pagamentos-e-integra-o-com-provedores./blob/main/servico-faturamento/backend/src/modules/servico-faturamento/presentation/controllers/PagamentoController.ts): `servico-faturamento/backend/src/modules/servico-faturamento/presentation/controllers/PagamentoController.ts`
- [Criar pagamento](https://github.com/carloshtpf/backend-em-microsservi-os-para-gest-o-de-pagamentos-e-integra-o-com-provedores./blob/main/servico-faturamento/backend/src/modules/servico-faturamento/application/use-cases/CriarPagamentoUseCase.ts): `servico-faturamento/backend/src/modules/servico-faturamento/application/use-cases/CriarPagamentoUseCase.ts`
- [Pagamento e contrato](https://github.com/carloshtpf/backend-em-microsservi-os-para-gest-o-de-pagamentos-e-integra-o-com-provedores./blob/main/servico-faturamento/backend/src/modules/servico-faturamento/domain/entities/Pagamento.ts): `servico-faturamento/backend/src/modules/servico-faturamento/domain/entities/Pagamento.ts`
- [Repositório Prisma](https://github.com/carloshtpf/backend-em-microsservi-os-para-gest-o-de-pagamentos-e-integra-o-com-provedores./blob/main/servico-faturamento/backend/src/modules/servico-faturamento/infrastructure/repositories/PrismaPagamentoRepository.ts): `servico-faturamento/backend/src/modules/servico-faturamento/infrastructure/repositories/PrismaPagamentoRepository.ts`
- [Banco faturamento](https://github.com/carloshtpf/backend-em-microsservi-os-para-gest-o-de-pagamentos-e-integra-o-com-provedores./blob/main/servico-faturamento/backend/src/modules/servico-faturamento/infrastructure/database/prismaClient.ts): `servico-faturamento/backend/src/modules/servico-faturamento/infrastructure/database/prismaClient.ts`
- [Publicador pagamento](https://github.com/carloshtpf/backend-em-microsservi-os-para-gest-o-de-pagamentos-e-integra-o-com-provedores./blob/main/servico-faturamento/backend/src/modules/servico-faturamento/infrastructure/messaging/PagamentoPublisher.ts): `servico-faturamento/backend/src/modules/servico-faturamento/infrastructure/messaging/PagamentoPublisher.ts`

### Gestão

- [Consumidor pagamento](https://github.com/carloshtpf/backend-em-microsservi-os-para-gest-o-de-pagamentos-e-integra-o-com-provedores./blob/main/servico-gestao/backend/src/modules/servico-gestao/infrastructure/messaging/PagamentoConsumer.ts): `servico-gestao/backend/src/modules/servico-gestao/infrastructure/messaging/PagamentoConsumer.ts`
- [Rotas de gestão](https://github.com/carloshtpf/backend-em-microsservi-os-para-gest-o-de-pagamentos-e-integra-o-com-provedores./blob/main/servico-gestao/backend/src/server.ts): `servico-gestao/backend/src/server.ts`
- [Gestão de clientes](https://github.com/carloshtpf/backend-em-microsservi-os-para-gest-o-de-pagamentos-e-integra-o-com-provedores./blob/main/servico-gestao/backend/src/modules/servico-gestao/domain/entities/Cliente.ts): `servico-gestao/backend/src/modules/servico-gestao/domain/entities/Cliente.ts`
- [Gestão de planos](https://github.com/carloshtpf/backend-em-microsservi-os-para-gest-o-de-pagamentos-e-integra-o-com-provedores./blob/main/servico-gestao/backend/src/modules/servico-gestao/domain/entities/Plano.ts): `servico-gestao/backend/src/modules/servico-gestao/domain/entities/Plano.ts`
- [Gestão de assinaturas](https://github.com/carloshtpf/backend-em-microsservi-os-para-gest-o-de-pagamentos-e-integra-o-com-provedores./blob/main/servico-gestao/backend/src/modules/servico-gestao/presentation/controllers/AssinaturaController.ts): `servico-gestao/backend/src/modules/servico-gestao/presentation/controllers/AssinaturaController.ts`
- [Banco gestão](https://github.com/carloshtpf/backend-em-microsservi-os-para-gest-o-de-pagamentos-e-integra-o-com-provedores./blob/main/servico-gestao/backend/src/modules/servico-gestao/infrastructure/database/prisma.ts): `servico-gestao/backend/src/modules/servico-gestao/infrastructure/database/prisma.ts`

### Planos ativos

- [Consulta plano ativo](https://github.com/carloshtpf/backend-em-microsservi-os-para-gest-o-de-pagamentos-e-integra-o-com-provedores./blob/main/servico-planos-ativos/backend/src/modules/servico-planos-ativos/presentation/controllers/PlanoAtivoController.ts): `servico-planos-ativos/backend/src/modules/servico-planos-ativos/presentation/controllers/PlanoAtivoController.ts`
- [Consultar plano ativo](https://github.com/carloshtpf/backend-em-microsservi-os-para-gest-o-de-pagamentos-e-integra-o-com-provedores./blob/main/servico-planos-ativos/backend/src/modules/servico-planos-ativos/application/use-cases/ConsultarPlanoAtivoUseCase.ts): `servico-planos-ativos/backend/src/modules/servico-planos-ativos/application/use-cases/ConsultarPlanoAtivoUseCase.ts`
- [Cache Redis](https://github.com/carloshtpf/backend-em-microsservi-os-para-gest-o-de-pagamentos-e-integra-o-com-provedores./blob/main/servico-planos-ativos/backend/src/modules/servico-planos-ativos/infrastructure/cache/RedisCacheService.ts): `servico-planos-ativos/backend/src/modules/servico-planos-ativos/infrastructure/cache/RedisCacheService.ts`
- [Cliente da Gestão](https://github.com/carloshtpf/backend-em-microsservi-os-para-gest-o-de-pagamentos-e-integra-o-com-provedores./blob/main/servico-planos-ativos/backend/src/modules/servico-planos-ativos/infrastructure/http/GestaoApiClient.ts): `servico-planos-ativos/backend/src/modules/servico-planos-ativos/infrastructure/http/GestaoApiClient.ts`
- [Consumidor de pagamento](https://github.com/carloshtpf/backend-em-microsservi-os-para-gest-o-de-pagamentos-e-integra-o-com-provedores./blob/main/servico-planos-ativos/backend/src/modules/servico-planos-ativos/infrastructure/messaging/PagamentoPlanoConsumer.ts): `servico-planos-ativos/backend/src/modules/servico-planos-ativos/infrastructure/messaging/PagamentoPlanoConsumer.ts`

### Other components

- **Cliente API**
- **RabbitMQ**
- [Redis](https://github.com/carloshtpf/backend-em-microsservi-os-para-gest-o-de-pagamentos-e-integra-o-com-provedores./blob/main/servico-planos-ativos/backend/src/modules/servico-planos-ativos/infrastructure/cache/redisClient.ts): `servico-planos-ativos/backend/src/modules/servico-planos-ativos/infrastructure/cache/redisClient.ts`

## Connections

- Cliente API → API Gateway: envia requisição (evidence: `README.md`)
- API Gateway → Proxies HTTP: roteia proxy (evidence: `README.md`)
- Proxies HTTP → Rotas e controller: encaminha pagamento (evidence: `README.md`)
- Rotas e controller → Criar pagamento: invoca caso (evidence: `servico-faturamento/backend/src/modules/servico-faturamento/presentation/controllers/PagamentoController.ts`)
- Criar pagamento → Repositório Prisma: persiste pagamento (evidence: `README.md`)
- Repositório Prisma → Banco faturamento: grava registro (evidence: `servico-faturamento/backend/src/modules/servico-faturamento/infrastructure/repositories/PrismaPagamentoRepository.ts`)
- Criar pagamento → Publicador pagamento: publica evento (evidence: `README.md`)
- Publicador pagamento → RabbitMQ: publica evento (evidence: `README.md`)
- RabbitMQ → Consumidor pagamento: entrega evento (evidence: `README.md`)
- RabbitMQ → Consumidor de pagamento: entrega evento (evidence: `README.md`)
- Rotas de gestão → Gestão de clientes: expõe operações (evidence: `README.md`)
- Rotas de gestão → Gestão de planos: expõe operações (evidence: `README.md`)
- Rotas de gestão → Gestão de assinaturas: expõe operações (evidence: `servico-gestao/backend/src/server.ts`)
- Rotas de gestão → Banco gestão: acessa dados
- Consulta plano ativo → Consultar plano ativo: invoca consulta (evidence: `servico-planos-ativos/backend/src/modules/servico-planos-ativos/presentation/controllers/PlanoAtivoController.ts`)
- Consultar plano ativo → Cache Redis: consulta cache (evidence: `servico-planos-ativos/backend/src/modules/servico-planos-ativos/application/use-cases/ConsultarPlanoAtivoUseCase.ts`)
- Cache Redis → Redis: lê e grava (evidence: `servico-planos-ativos/backend/src/modules/servico-planos-ativos/infrastructure/cache/RedisCacheService.ts`)
- Consultar plano ativo → Cliente da Gestão: verifica assinatura (evidence: `servico-planos-ativos/backend/src/modules/servico-planos-ativos/application/use-cases/ConsultarPlanoAtivoUseCase.ts`)
- Cliente da Gestão → Gestão de assinaturas: consulta via HTTP
