
Visão geral
Ticket Sales é um backend para eventos que gerencia o ciclo completo de ingressos: reserva temporária, compra de múltiplos tickets, cancelamento e histórico de status. O foco está em integridade transacional e controle de concorrência para evitar overselling.
- Reserva de ingressos
- Compra de múltiplos tickets
- Cancelamento com histórico
- Transações no banco de dados
- Histórico de status
Problema resolvido
Venda de ingressos online exige garantir que o mesmo assento ou lote não seja vendido duas vezes, mesmo com múltiplas requisições simultâneas, além de rastrear cada mudança de status do pedido.
Regras de negócio
- Reservas possuem tempo de expiração configurável.
- Compra confirma apenas tickets disponíveis no momento da transação.
- Cancelamentos atualizam estoque e registram histórico.
- Cada mudança de status é persistida para auditoria.
- Operações críticas executam dentro de transações no banco.
Arquitetura
API REST com controle transacional
Express organiza rotas por domínio (eventos, tickets, pedidos). MySQL garante ACID nas operações de reserva e compra, com testes Vitest cobrindo fluxos críticos.
- Cliente HTTP
- Express Routes
- Regras de negócio
- Transação MySQL
- Histórico de status
- Resposta + Swagger
Desafios técnicos
- Concorrência
- Integridade de dados
- Regras de negócio
- Confiabilidade
Decisões técnicas
Transações no MySQL
Garantem atomicidade na reserva e compra, evitando condições de corrida em cenários de alta concorrência.
Histórico de status
Permite rastrear o ciclo de vida de cada pedido e facilita suporte e debugging em produção.
Vitest para testes
Cobertura automatizada dos fluxos de reserva, compra e cancelamento reduz regressões em regras sensíveis.
Qualidade de Software
Ferramentas, testes automatizados, CI/CD e padrões de engenharia aplicados neste portfólio.