Case de Engenharia

Simple Sale

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

Java 21 / Spring BootReact + TypeScriptPostgreSQL + FlywayRedis / RedissonMercadoLivre APIAWS LambdaJUnit / MockitoJWT / OAuth2
Simple Sale

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.

Simple Sale

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).

  1. 01
    Autenticaçã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.

  2. 02
    Multi-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.

  3. 03
    Resiliê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).

  4. 04
    Banco 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.

  5. 05
    Testes 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.

Vamos conversar sobre seu projeto?

Próximo caseNexus AI