Diagrama de Componentes

🏗️ Visão Geral dos Componentes

O Payment Gateway é organizado em camadas bem definidas, cada uma com responsabilidades específicas:

┌─────────────────────────────────────────────────────────────────┐
│                        PRESENTATION LAYER                       │
├─────────────────┬─────────────────┬─────────────────────────────┤
│   Dashboard     │   Widget API    │      Public Assets         │
│   Admin Panel   │   Embed Scripts │      Static Files          │
└─────────────────┴─────────────────┴─────────────────────────────┘

┌─────────────────────────────────────────────────────────────────┐
│                          API GATEWAY                            │
├─────────────────┬─────────────────┬─────────────────────────────┤
│   Rate Limiting │   Authentication│      CORS & Security       │
│   Load Balancer │   Authorization │      Request Logging       │
└─────────────────┴─────────────────┴─────────────────────────────┘

┌─────────────────────────────────────────────────────────────────┐
│                       BUSINESS LOGIC LAYER                      │
├─────────────────┬─────────────────┬─────────────────────────────┤
│ Payment Service │ Webhook Service │    Security Service        │
│ Validation      │ Event Processing│    Encryption/Decryption   │
│ Orchestration   │ Retry Logic     │    Fraud Detection         │
└─────────────────┴─────────────────┴─────────────────────────────┘

┌─────────────────────────────────────────────────────────────────┐
│                      INTEGRATION LAYER                          │
├─────────────────┬─────────────────┬─────────────────────────────┤
│ Stripe Adapter  │ PayPal Adapter  │   MercadoPago Adapter      │
│ Card Processing │ Express Checkout│   PIX & Boleto             │
│ Subscriptions   │ Subscriptions   │   Credit Card              │
└─────────────────┴─────────────────┴─────────────────────────────┘

┌─────────────────────────────────────────────────────────────────┐
│                         DATA ACCESS LAYER                       │
├─────────────────┬─────────────────┬─────────────────────────────┤
│ Database Models │    Cache Layer  │      File Storage          │
│ Query Builder   │    Redis Client │      Log Files             │
│ Migrations      │    Session Store│      Backup Files          │
└─────────────────┴─────────────────┴─────────────────────────────┘

┌─────────────────────────────────────────────────────────────────┐
│                       INFRASTRUCTURE LAYER                      │
├─────────────────┬─────────────────┬─────────────────────────────┤
│   SQLite/PG     │     Redis       │      Monitoring            │
│   Database      │     Cache       │      Prometheus            │
│   Persistence   │     Sessions    │      Health Checks         │
└─────────────────┴─────────────────┴─────────────────────────────┘

📦 Detalhamento dos Componentes

🎨 Presentation Layer

Dashboard (public/dashboard.html)

  • Responsabilidade: Interface administrativa para monitoring

  • Tecnologia: HTML, CSS, JavaScript vanilla + Chart.js

  • Features:

    • Real-time payment statistics

    • Provider health monitoring

    • Transaction analytics

    • System performance metrics

Widget API (src/controllers/WidgetController.js)

  • Responsabilidade: Servir widgets embarcáveis

  • Tecnologia: Express.js

  • Features:

    • Dynamic widget generation

    • Theme customization

    • Cross-domain embedding

    • Event-driven communication

Public Assets (public/)

  • Responsabilidade: Servir arquivos estáticos

  • Conteúdo:

    • CSS themes

    • JavaScript libraries

    • Images and icons

    • Widget scripts

🚪 API Gateway Layer

Rate Limiting (api/middleware/rateLimitMiddleware.js)

  • Implementação: express-rate-limit

  • Configuração:

    • 1000 requests/hour por IP (geral)

    • 100 requests/hour para endpoints de pagamento

    • 10 requests/minute para login

Authentication (api/middleware/authMiddleware.js)

  • Método: JWT tokens com refresh

  • Features:

    • Token validation

    • Role-based access control

    • Session management

    • API key authentication

Security (api/middleware/securityMiddleware.js)

  • Implementação: helmet + custom rules

  • Features:

    • CORS configuration

    • CSP headers

    • Request sanitization

    • Security headers

🧠 Business Logic Layer

Payment Service (src/services/PaymentService.js)

Webhook Service (src/services/WebhookService.js)

Security Service (src/services/SecurityService.js)

🔌 Integration Layer

Stripe Adapter (integrations/stripe/stripe-provider.js)

PayPal Adapter (integrations/paypal/paypal-provider.js)

MercadoPago Adapter (integrations/mercadopago/mercadopago-provider.js)

💾 Data Access Layer

Database Models (src/models/)

Cache Layer (src/services/CacheService.js)

🔧 Infrastructure Layer

Database Schema

Monitoring Components (monitoring/)

  • Health Checks: Database, Redis, external APIs

  • Metrics: Business KPIs, technical metrics

  • Alerting: Slack, email, PagerDuty integration

  • Dashboards: Real-time monitoring interface

🔄 Fluxo de Dados Entre Componentes

1. Payment Processing Flow

2. Webhook Processing Flow

3. Monitoring Data Flow

🚀 Deployment Components

Container Architecture

Kubernetes Components

  • Deployment: Application pods with rolling updates

  • Service: Load balancer for internal communication

  • Ingress: External traffic routing with TLS

  • ConfigMap: Non-sensitive configuration

  • Secret: Sensitive data (API keys, passwords)

  • HPA: Horizontal Pod Autoscaler

📊 Performance Características

Latency Targets

  • Payment API: < 200ms (95th percentile)

  • Dashboard: < 1s (initial load)

  • Webhooks: < 100ms (processing)

Throughput Targets

  • Payments: 1000 TPS (sustained)

  • Webhooks: 5000 TPS (burst)

  • API Calls: 10000 TPS (general)

Availability

  • Target: 99.9% uptime

  • RTO: 5 minutes (Recovery Time Objective)

  • RPO: 15 minutes (Recovery Point Objective)


Última atualização: December 2024

Last updated

Was this helpful?