Um Núcleo, Muitos Ofícios: A Arquitetura por Trás do Raciocínio Modular

Como um único núcleo multi-tenant em Postgres já veste barbearia, clínica, veterinária e vidraçaria — sem reescrever uma linha de domínio a cada vertical nova.
Barbearia, clínica de psicologia, veterinária e vidraçaria não têm nada em comum — até você abrir o banco de dados. Por baixo do vocabulário de cada uma mora a mesma agenda, o mesmo cadastro de pessoa e a mesma régua de cobrança. O Raciocínio Modular é o produto que construímos em torno dessa observação, e este artigo documenta as decisões de arquitetura que fazem ele funcionar.
O problema com software de nicho
Todo ofício pequeno vive entre dois extremos ruins. Ou a operação roda em caderno, grupo de WhatsApp e planilha — um compromisso marcado em três lugares nunca está em lugar nenhum quando o cliente liga perguntando do horário — ou alguém paga por um sistema genérico demais para falar a língua do negócio, ou caro demais porque foi escrito do zero para um público de nicho pequeno.
A resposta óbvia — construir um sistema por ofício — não escala: cada vertical nova vira outro backend, outro banco, outro time de suporte. A resposta que testamos é a menos óbvia: e se o ofício fosse só uma tradução, e não uma reescrita?
A ideia: núcleo, módulos e vertical
A organização (a empresa que assina o plano) é a fronteira de tudo. Dentro dela, um núcleo cobre o que toda organização precisa — pessoa, autenticação, permissão, cobrança —, módulos são alugados um a um conforme a operação cresce, e a vertical não é código nenhum: é vocabulário, campo extra de cadastro e uma cor de destaque.
Nenhuma vertical nova pediu uma linha de código no núcleo até hoje; só um arquivo de léxico, um conjunto de campos e uma cor.
Isso significa que a mesma tabela que guarda um "compromisso" é lida como corte na barbearia, sessão na clínica de psicologia e consulta na veterinária — a tradução mora só na camada de apresentação, nunca no banco.
Quatro regras que sustentam o núcleo
- Nenhum módulo lê tabela de outro módulo. A comunicação é só por evento — regra imposta por lint de dependência do monorepo, não por disciplina de equipe.
- Vocabulário de nicho nunca entra no núcleo. É sempre
compromisso, nunca "sessão" ou "corte". - A organização é a fronteira de tudo. Dado, vertical, plano, fatura, cota e cupom — tudo amarrado a uma organização, nunca espalhado por outro escopo.
- Entitlement nunca vai no token. O JWT carrega só o usuário; a organização ativa é resolvida e revalidada contra a tabela de vínculos a cada requisição.
O isolamento entre organizações não é uma cláusula de filtro que um serviço poderia esquecer de aplicar — é Row-Level Security de verdade no Postgres, com a conexão de aplicação rodando sob uma role sem privilégio de dono, e a organização ativa fixada dentro da própria transação antes de qualquer leitura.
Módulos, um a um
Cadastro único de pessoa
Sempre ligado, para qualquer organização: pessoa física ou jurídica, com papéis. A mesma pessoa pode ser cliente, fornecedora e transportadora ao mesmo tempo, sem cadastro duplicado.
Agenda
Clientes e compromissos, sem depender de planilha ou grupo de WhatsApp — uma agenda que qualquer pessoa da equipe consegue ler, sem duplicar compromisso nem perder histórico.
Lista de notas
Um bloco de notas por organização — recado, lembrete com recorrência ou observação, com checklist e anexo quando precisar.
Cobrança online
Uma conta gráfica de verdade, com o dinheiro do cliente entrando por Stripe Connect. Razão em partida dobrada por organização — cada lançamento tem contrapartida — em vez de um saldo solto que ninguém audita.
Marketplace
Venda para fora da própria base de clientes, com escrow e custódia — o único módulo que atravessa a fronteira de organização de propósito.
À parte, por usuário e não por organização, existe ainda um cofre de senhas pessoal com criptografia de envelope (Argon2id + AES-256-GCM) — fora da régua de aluguel porque não é recurso da organização, é do usuário logado.
GLAZZ: quando o módulo vira mercado
O módulo mais ambicioso do catálogo não atende só a própria organização — ele é um mercado. GLAZZ deixa vidraçarias anunciarem peças de vidro, e permite que qualquer visitante, mesmo sem conta, busque por dimensão entre vidraçarias diferentes: a primeira vez que uma busca atravessa a fronteira de organização que o resto da plataforma trata como sagrada.
O ciclo completo
Anunciar
Peça publicada no catálogo público, buscável por dimensão sem login.
Reter
Pagamento do comprador entra e fica em escrow — a vidraçaria ainda não recebe.
Liberar
Entrega confirmada libera o valor para a vidraçaria via Stripe Connect.
O motor não ficou preso ao vidro: uma segunda vertical de marketplace genérico já reaproveita a mesma engrenagem de escrow para qualquer categoria de produto — a aposta do núcleo, provada duas vezes.
Onde isso já roda hoje
Hoje o catálogo tem 7 módulos cobrindo 5 verticais — Barbearia, Psicologia, Veterinária, Vidraçaria e um Marketplace genérico — todas rodando sobre o mesmo núcleo, com o isolamento feito pelo banco, não pela aplicação. A infraestrutura combina Postgres com RLS (Neon), Redis Streams como espinha dorsal de evento entre módulos, Stripe Connect nos pagamentos, e deploy em Fly.io e Cloudflare Pages. Todo módulo com dado por organização nasce com um teste de isolamento real contra o Postgres antes de ir para o ar — isolamento provado, não assumido.
O produto pode ser conhecido em raciocinio-modular.pages.dev, onde é possível alternar entre verticais e ver o mesmo núcleo mudando de roupa em tempo real.
O que isso significa para o seu negócio
O nome do projeto é literal: um jeito de raciocinar sobre software de nicho decompondo-o em peças — o que é universal, o que é modular e o que é só palavra. Foi assim que veterinária entrou depois de barbearia e psicologia, e foi assim que GLAZZ, o mais complexo dos módulos, não precisou tocar em nenhum dos outros.
Essa mesma disciplina de arquitetura — separar o que é universal do que é específico do seu negócio — é o que aplicamos em qualquer projeto sob medida que desenvolvemos, dentro ou fora do ecossistema do Raciocínio Modular.
Seu negócio atende um nicho que os sistemas genéricos não entendem, mas construir do zero parece caro demais? Podemos avaliar se uma arquitetura modular como esta encurta o caminho até o seu produto.
→ Iniciar meu projetoArtigos Relacionados

Do Problema Real ao Produto Certo
Por que todo SaaS parece feito para um usuário genérico que não existe — e como uma nova mecânica muda isso.

PixCobrança: o Boleto Registrado Reinventado com Liquidação Instantânea
Como um gateway de cobrança Pix multi-tenant, organizado por carteiras isoladas por parceiro, cobre o mesmo terreno do boleto registrado — vencimento, multa, juros e desconto — com liquidação em segundos.

Módulo SLC: a Infraestrutura por Trás da Liquidação de Cartões no SILOC
Como um módulo de liquidação de cartões conecta credenciadoras e instituições de pagamento ao SILOC do Banco Central — e por que essa camada, uma vez resolvida, também abre a porta para antecipação de recebíveis.