Simple Sale
SaaS multi-tenant de vendas e estoque integrado a marketplaces (MercadoLivre).

A Splindid precisava de uma plataforma onde vários clientes (tenants) gerenciassem catálogo, estoque e pedidos em um só lugar, sincronizando em tempo real com marketplaces como o MercadoLivre. Os desafios: isolar os dados de cada tenant na mesma base, manter consistência de estoque mesmo dependendo de uma API externa instável, e escalar horizontalmente sem estado compartilhado entre instâncias.
SPA React consome uma API REST stateless (JWT) rodando serverless na AWS Lambda; PostgreSQL é a fonte da verdade, Redis cuida de cache/locks, o MercadoLivre integra via OAuth2/webhooks e a operação tem observabilidade (logs JSON + Prometheus).
- 01Autenticação stateless com JWT
Sem sessão no servidor (SessionCreationPolicy.STATELESS) — a API escala horizontalmente sem estado compartilhado. Access token de 24h + refresh token de 7 dias, com refresh automático no interceptor do Axios no front.
- 02Multi-tenancy por TenantContext
Cada tenant tem seus dados isolados: um TenantContext (ThreadLocal) resolve o tenant por requisição e o Hibernate roteia para o schema correto — isolamento garantido no nível da request.
- 03Resiliência e consistência de estoque
Como dependemos da API do MercadoLivre e estoque não pode ter condição de corrida: rate limiting com Bucket4j, circuit breaker com Resilience4j e locks distribuídos com Redisson (Redis).
- 04Banco como fonte da verdade (Flyway)
Schema versionado e migrado automaticamente via Flyway (V1→V25), com ddl-auto: validate — o banco é a fonte da verdade, reproduzível em qualquer ambiente.
- 05Testes automatizados e entrega contínua
Cobri as regras críticas com JUnit, Mockito e testes de integração, com pipeline de CI/CD e code review — para evoluir o produto e fazer o deploy serverless na AWS sem regressão.
Organização, observabilidade e deploy
O backend é organizado por feature (auth, catalog, inventory, order, promotion, integration, analytics), cada uma com suas camadas controller → service → repository → entity/dto — então cada domínio evolui isolado e coeso. A operação tem observabilidade de ponta a ponta com logs estruturados em JSON (Logstash) e métricas via Prometheus/Micrometer, e a API roda serverless na AWS (Lambda), escalando sob demanda.
O resultado é um SaaS multi-tenant que centraliza catálogo, estoque e pedidos de marketplaces em um só lugar: API stateless que escala horizontalmente, isolamento de dados por tenant e integração em tempo real com o MercadoLivre resiliente a falhas e a condições de corrida de estoque.