tempo de leitura : 12 minutes

Em vez de escolher entre a simplicidade do Supabase e a potência do Spring Boot, por que não combinar os dois? Descubra uma arquitetura híbrida que aproveite o melhor de cada tecnologia.

tic

(Note: No characters)

O Falso Dilema da Arquitetura Moderna

Quando se constrói uma aplicação moderna com um frontend estático, muitas vezes nos deparamos com uma escolha binária:

  • Apostar tudo numa solução Backend-as-a-Service(Supabase, Firebase) - simples mas limitada

  • Construir um backend completo(Spring Boot, Node.js) - poderoso mas complexo

Esta escolha é um falso dilema. A arquitetura híbrida propõe um terceiro caminho: usar cada tecnologia onde ela se destaca.

Visão arquitetural

A Arquitetura Tradicional: Monolítica

traditional architecture

Nessa abordagem, mesmo as operações mais simples (leitura de um artigo, criação de um comentário) devem passar pelo seu backend. Você paga o custo da complexidade desde o primeiro dia.

A Arquitetura BaaS : Todo Delegado

baas architecture

Do outro lado, delegar tudo a um BaaS é sedutor no início, mas mostra rapidamente seus limites assim que a lógica de negócio se complexifica.

A Arquitetura Híbrida : Separação das Responsabilidades

hybrid overview

A arquitetura híbrida separa claramente as responsabilidades de acordo com a complexidade e a natureza das operações.

Princípios de Design

Princípio 1 : Começar Simples, Evoluir Inteligentemente

evolution phases

Não construa o Spring Boot se você não precisar dele.Comece com o Supabase, adicione o Spring Boot quando a complexidade o justificar.

Princípio 2: Separação por natureza da operação

operation types

Princípio 3: Uma Única Fonte de Verdade

single source truth

Ao compartilhar a mesma instância PostgreSQL, Supabase e Spring Boot trabalham nos mesmos dados sem sincronização complexa.

Orquestração dos Fluxos

Flux 1 : Autenticação Centralizada

auth orchestration

Ponto-chaveUm único processo de autenticação, um único JWT, utilizável em qualquer lugar.

Fluxo 2 : Orquestração de um Processo de Negócio Complexo

business orchestration

O que o Spring Boot trazOrquestração fiável de processos complexos envolvendo vários sistemas com garantia transacional.

Flux 3 : Jobs Agendados e Sincronizações

Failed to generate image: PlantUML preprocessing failed: [From <input> (line 4) ]

@startuml
skinparam backgroundColor #FEFEFE

participant "Escalonador
^^^^^
 Syntax Error? (Assumed diagram type: sequence)

@startuml
skinparam backgroundColor #FEFEFE

participant "Escalonador
(Spring Boot)" as scheduler
participant "Serviço de relatório" as report
participant "PostgreSQL" as db
participant "API externa" as api
participant "Serviço de e-mail" as email
participant "Supabase Storage" as storage

== Job Quotidien : 2h00 ==
activate scheduler
scheduler -> report : Déclenche génération rapport

activate report
report -> db : Récupère données\ndes dernières 24h
db -> report : Dataset

report -> report : Calculs & Agrégations
report -> report : Génération PDF

report -> storage : Upload PDF
storage -> report : URL publique

report -> email : Envoie aux admins\navec lien PDF
deactivate report

== Job Hebdomadaire : Dimanche 3h00 ==
scheduler -> report : Synchronisation externe

activate report
report -> api : Fetch données externes
api -> report : Nouvelles données

report -> db : Mise à jour tables
report -> db : Nettoyage données obsolètes
deactivate report

== Job Mensuel : 1er du mois ==
scheduler -> report : Facturation

activate report
report -> db : Liste clients actifs
report -> report : Calcul montants
report -> api : Génération factures (Stripe)
report -> email : Envoi factures
deactivate report

deactivate scheduler

note right of scheduler
  **Impossible avec Supabase seul**
  Edge Functions non adaptées
  pour jobs longs et récurrents
end note
@enduml

O que o Spring Boot traz: Trabalhos agendados confiáveis com gerenciamento de estado, nova tentativa automática e execução garantida

Matriz de Decisão

Quando usar Supabase?

supabase decision

Quando usar o Spring Boot?

springboot decision

Exemplos de Arquitetura por Tipo de Projeto

Blog / Portfólio

blog architecture

veredicto: 100% Supabase basta amplamente.

Aplicação SaaS

saas architecture

veredicto: Arquitetura híbrida necessária. Supabase para o essencial, Spring Boot para a parte crítica (pagamentos, faturamento).

e-comércio

ecommerce architecture

veredicto: Spring Boot indispensável. Supabase apenas para auth e catálogo.

Estratégia de Migração Progressiva

migration strategy

Custos e Considerações Operacionais

Estrutura dos custos

Failed to generate image: PlantUML preprocessing failed: [From <input> (line 13) ]

@startuml
skinparam backgroundColor #FEFEFE

package "Custos Mensais Estimados" {

  rectangle "Fase MVP\n(0-1000 utilizadores)" #LightGreen {
    [JBake (GitHub Pages): 0€]
    [Supabase: 0€]
    [Spring Boot: N/A]
    note bottom: **Total: 0€/mois**
  }

  rectangle "Fase Crescimento
^^^^^
 Syntax Error? (Assumed diagram type: component)

@startuml
skinparam backgroundColor #FEFEFE

package "Custos Mensais Estimados" {

  rectangle "Fase MVP\n(0-1000 utilizadores)" #LightGreen {
    [JBake (GitHub Pages): 0€]
    [Supabase: 0€]
    [Spring Boot: N/A]
    note bottom: **Total: 0€/mois**
  }

  rectangle "Fase Crescimento
(1k-10k usuários)" #LightYellow {
    [JBake (GitHub Pages): 0€]
    [Supabase: 0€]
    [Spring Boot (Cloud Run): 20-50€]
    [PostgreSQL (si séparé): 0-30€]
    note bottom: **Total: 20-80€/mois**
  }

  rectangle "Fase de Escala
(10k-100k utilizadores)" #LightCoral {
    [JBake (Netlify Pro): 19€]
    [Supabase Pro: 25€]
    [Spring Boot (instances multiples): 100-300€]
    [Redis Cache: 20-50€]
    [Monitoring: 20€]
    note bottom: **Total: 184-414€/mois**
  }
}

note right of "Fase de Escala
(10k-100k utilizadores)"
  À ce stade, les revenus
  justifient largement les coûts
end note
@enduml

Responsabilidades Operacionais

operational responsibilities

Conclusão : O Equilíbrio Perfeito

A arquitetura híbrida Supabase + Spring Boot não é um compromisso, é umasinergia.

Os Princípios a Reter

key principles

Quando escolher esta arquitetura?

�✅ Esta arquitetura é ideal se:

  • Você quer começar rapidamente (MVP em dias, não em meses)

  • Você antecipa um aumento da complexidade do negócio

  • Você quer minimizar os custos iniciais

  • Você gosta do PostgreSQL e quer uma fonte de verdade única

  • Você aprecia Kotlin e as coroutines para o código de negócios

  • Você quer evitar o vendor lock-in total

❌ Esta arquitetura NÃO é adequada se :

  • Seu projeto é simples e permanecerá simples (blog pessoal → 100% Supabase basta)

  • Você já tem uma stack de backend estabelecida que você domina

  • Você prefere um monolito tradicional

  • Você precisa de .NET, Python ou outra linguagem de backend

Visão Geral Final

Failed to generate image: PlantUML preprocessing failed: [From <input> (line 35) ]

@startuml
skinparam backgroundColor #FEFEFE

package "Arquitetura Híbrida Completa" {

  actor "Usuários" as users

  rectangle "Frontend (Estático)" #SkyBlue {
    [JBake / GitHub Pages]
    note right: Gratuit, CDN global
  }

  rectangle "Backend Simples (Supabase)" #LightGreen {
    [Auth OAuth2]
    [CRUD APIs]
    [Storage]
    [Realtime]
    note right
      Gratuit jusqu'à 50k users
      Zéro configuration serveur
    end note
  }

  rectangle "Backend de negócio (Spring Boot)" #Coral {
    [Orchestration]
    [Jobs Planifiés]
    [Intégrations]
    [Transactions]
    note right
      Activé uniquement
      si nécessaire
    end note
  }

  database "PostgreSQL
^^^^^
 Syntax Error? (Assumed diagram type: component)

@startuml
skinparam backgroundColor #FEFEFE

package "Arquitetura Híbrida Completa" {

  actor "Usuários" as users

  rectangle "Frontend (Estático)" #SkyBlue {
    [JBake / GitHub Pages]
    note right: Gratuit, CDN global
  }

  rectangle "Backend Simples (Supabase)" #LightGreen {
    [Auth OAuth2]
    [CRUD APIs]
    [Storage]
    [Realtime]
    note right
      Gratuit jusqu'à 50k users
      Zéro configuration serveur
    end note
  }

  rectangle "Backend de negócio (Spring Boot)" #Coral {
    [Orchestration]
    [Jobs Planifiés]
    [Intégrations]
    [Transactions]
    note right
      Activé uniquement
      si nécessaire
    end note
  }

  database "PostgreSQL
Fonte única de verdade" as db #LightGray

  users --> [JBake / GitHub Pages]

  [JBake / GitHub Pages] --> [Auth OAuth2]
  [JBake / GitHub Pages] --> [CRUD APIs]
  [JBake / GitHub Pages] --> [Storage]
  [JBake / GitHub Pages] --> [Realtime]
  [JBake / GitHub Pages] --> [Orchestration]

  [Auth OAuth2] --> db
  [CRUD APIs] --> db
  [Orchestration] --> db
  [Jobs Planifiés] --> db
  [Intégrations] --> db
}

note bottom of db
  **Une seule base, deux consommateurs**
  • Supabase pour le simple
  • Spring Boot pour le complexe
  • Aucune synchronisation requise
end note

@enduml

O Melhor dos Dois Mundos

Esta arquitetura lhe dá :

🚀 A Velocidade do Supabase

  • Início em horas, não em semanas

  • Autenticação OAuth2 em poucos cliques

  • APIs REST geradas automaticamente

  • Configuração zero do servidor

A Potência do Spring Boot

  • Kotlin e Corrotinas para código assíncrono elegante

  • Orquestração de processos de negócios complexos

  • Trabalhos agendados fiáveis

  • Transações ACID garantidas

  • Ecossistema Spring completo

�💰 A economia progressiva

  • 0€ para iniciar e validar

  • Custos que acompanham o crescimento

  • Sem sobreengenharia prematura

�🎯 Flexibilidade Arquitetural

  • Migração progressiva sem reestruturação

  • Adição do Spring Boot apenas se necessário

  • Sem vendor lock-in total

  • Arquitetura evolutiva

Para Ir Mais Longe

Recursos Técnicos

Documentação Supabase:

Documentação Spring Boot :

Artigos Complementares:

  • Segurança das APIs com JWT

  • Otimização do desempenho do PostgreSQL

  • Padrões de migração progressiva

  • Gestão de erros em arquitetura distribuída

Casos de uso reais

Esta arquitetura híbrida é utilizada com sucesso em:

  • SaaS B2B: Autenticação Supabase, faturação Spring Boot

  • Mercados: Catálogo Supabase, transações Spring Boot

  • Plataformas de conteúdo: Artigos Supabase, analytics Spring Boot

  • Ferramentas internas: CRUD Supabase, fluxos de trabalho Spring Boot

Checklist de inicialização

Fase 1 - Fundações (Semana 1)

  • Criar conta Supabase - [ ] Configurar projeto PostgreSQL - [ ] Ativar Auth (Google, GitHub) - [ ] Definir esquema inicial - [ ] Configurar Row Level Security Testar APIs desde o JBake

Phase 2 - MVP (Semana 2-3)

  • Implementar páginas principais - [ ] Integrar autenticação OAuth2 - [ ] Criar formulários CRUD - [ ] Configurar armazenamento para arquivos - [ ] Implantar no GitHub Pages - [ ] Testar em condições reais

Fase 3 - Evolução (Conforme necessidades)

  • Identificar necessidades de lógica complexa - [ ] Criar projeto Spring Boot se necessário - [ ] Configurar validação JWT Supabase - [ ] Conectar ao PostgreSQL Supabase - [ ] Migrar funcionalidades complexas - [ ] Implementar trabalhos programados - [ ] Implantar Spring Boot (Cloud Run, etc.)

Anti-padrões a evitar

�❌ Não fazer :

  • Duplicar os dados entre Supabase e Spring Boot

  • Criar duas bases PostgreSQL separadas

  • Codificar a autenticação você mesmo

  • Usar o Spring Boot para um CRUD simples

  • Exagerar na arquitetura desde o início

  • Ignorar o Row Level Security do Supabase

�✅ Fazer melhor:

  • Compartilhar uma única base PostgreSQL

  • Deixar o Supabase gerenciar a autenticação

  • Usar Spring Boot apenas para a complexidade

  • Começar simples, evoluir progressivamente

  • Explorar as forças de cada tecnologia

  • Proteger com RLS no nível da base de dados

Perspectivas de Evolução

Adição de Novas Capacidades

future capabilities

escala horizontal

Quando seu aplicativo cresce, a arquitetura híbrida escala naturalmente :

Supabase :

  • Escala automaticamente até milhões de operações

  • Réplicas de leitura para desempenho de leitura

  • Recuperação em um ponto no tempo para segurança

Spring Boot :

  • Múltiplas instâncias atrás do balanceador de carga

  • Design sem estado facilita o escalonamento horizontal

  • Kubernetes para orquestração, se necessário

PostgreSQL:

  • Particionamento para tabelas voluminosas

  • Pooling de conexões (PgBouncer)

  • Sharding realmente necessário (raro)

Testemunhos Arquitetônicos

Startup SaaS (50k usuários)

_ Começamos com 100% Supabase. Com 5k usuários, adicionamos o Spring Boot apenas para a faturação Stripe e os relatórios mensais. Um ano depois, 80% das nossas operações ainda passam pelo Supabase. O Spring Boot gerencia apenas a parte crítica. Esta separação nos permitiu escalar sem refatoração. _

Plataforma E-learning (10k utilizadores)

_ A autenticação OAuth2 do Supabase nos fez economizar 3 semanas de desenvolvimento. As APIs auto-geradas gerenciam todo o nosso catálogo de cursos. O Spring Boot serve apenas para os certificados PDF e os e-mails de progresso. Arquitetura simples, manutenível e escalável. _

Marketplace B2B (3k utilizadores)

_ Spring Boot gerencia as transações entre compradores e vendedores (crítico). Supabase cuida de tudo o resto: perfis, mensagens em tempo real, documentos. O fato de eles compartilharem a mesma base PostgreSQL nos evita qualquer sincronização complexa. Melhor escolha arquitetural que já fizemos. _

Síntese: Um paradigma arquitetural moderno

A arquitetura híbrida Supabase + Spring Boot representa um novo paradigma:a especialização arquitetônica.

Failed to generate image: PlantUML preprocessing failed: [From <input> (line 20) ]

@startuml
skinparam backgroundColor #FEFEFE

rectangle "Paradigma Antigo" #LightCoral {
  card "Tudo no Backend" {
    [Auth]
    [CRUD]
    [Logique Métier]
    [Jobs]
    [Storage]
    [Realtime]
  }
  note bottom
    Complexité maximale
    dès le jour 1
  end note
}

rectangle "Novo Paradigma" #LightGreen {
  card "Supabase
^^^^^
 Syntax Error? (Assumed diagram type: component)

@startuml
skinparam backgroundColor #FEFEFE

rectangle "Paradigma Antigo" #LightCoral {
  card "Tudo no Backend" {
    [Auth]
    [CRUD]
    [Logique Métier]
    [Jobs]
    [Storage]
    [Realtime]
  }
  note bottom
    Complexité maximale
    dès le jour 1
  end note
}

rectangle "Novo Paradigma" #LightGreen {
  card "Supabase
(Conveniência)" {
    [Auth]
    [CRUD Simple]
    [Storage]
    [Realtime]
  }

  card "Spring Boot
(Diferenciação)" {
    [Logique Métier]
    [Jobs]
    [Intégrations]
  }

  note bottom
    Complexité progressive
    ajoutée seulement si nécessaire
  end note
}

[Ancien Paradigme] -right-> [Nouveau Paradigme] : Évolution

@enduml

O princípio fondamental :Não construa o que já existe na forma de serviço. Concentre-se no que diferencia sua aplicação.

A Regra dos 80/20

Na maioria das aplicações :

  • 80% das operaçõesSão CRUD padrão → Supabase

  • 20 % das operaçõesrequerem lógica de negócio → Spring Boot

Esta regra natural justifica a arquitetura híbrida.

8020 rule

Conclusão Final

A arquitetura híbrida não é um compromisso técnico, é umadecisão estratégica.

Ela permite que você :

  • �✅ Começar rapidamente com um MVP funcional

  • �✅ Validar seu mercado sem investimento pesado

  • Evoluir gradualmente quando a complexidade o exige

  • �✅ Domine seus custos em cada etapa

  • �✅ Aproveitar o melhor de cada tecnologia

  • Evitar o over-engineering prematuro

  • ✅ Manter a flexibilidade para o futuro

Ela representa :

  • �🎯pragmatismo: Cada tecnologia onde ela se destaca

  • 🚀Velocidade: Tempo de lançamento mínimo

  • �💰economia: Custos alinhados ao valor

  • �🔮Escalabilidade: Arquitetura que cresce com você

  • 🛡️robustez: Serviços comprovados e confiáveis

Seu Próximo Passo

Se esta arquitetura fala com você, aqui está por onde começar :

  1. Crie uma conta Supabase(gratuito)

  2. Defina seu esquema de dados mínimo

  3. Configure a autenticação OAuth2

  4. Crie sua primeira página JBake que consome a API

  5. Implante no GitHub Pages

Você terá um MVP funcional emalguns dias.

Spring Boot virá naturalmente quando você precisar. Não antes.


A arquitetura híbrida é a arte de construir exatamente o que é preciso, quando preciso.

Bom desenvolvimento! 🚀


Compartilhe este artigo se você pensar que pode ajudar outros desenvolvedores a fazer as boas escolhas arquitetônicas.

Articles connexes