Pitch: Estou criando um runtime open source para SaaS multi-tenant com isolamento real
Olá, pessoal.
Me chamo Péricles, também uso Pec Rodrigues. Trabalho principalmente como freelancer fullstack, brand designer e produtor de jogos, especialmente voltados para educação.
Estou construindo o Ehecoatl, um runtime backend open source pensado para aplicações SaaS e white-label onde o isolamento entre clientes não deveria depender apenas do código da aplicação.
A ideia central é simples:
cada tenant deve rodar como um ambiente mais isolado, em vez de ser separado apenas por uma coluna
tenant_ide algumas validações no código.
A experiência que estou buscando é:
menos fricção para provisionar, operar e monitorar tenants; mais segurança para experimentar customizações sem aumentar demais o raio de impacto.
O problema
Muitas aplicações SaaS começam com multi-tenancy lógico:
- um backend compartilhado;
- um runtime compartilhado;
- um único processo;
- separação entre clientes feita principalmente no código.
Isso funciona em muitos casos, principalmente no início. Mas conforme o produto cresce, esse modelo pode ficar frágil:
- um erro em um tenant pode afetar outros;
- uma customização mal feita pode quebrar o serviço inteiro;
- um plugin ou app customizado pode acessar mais do que deveria;
- ambientes white-label ficam mais difíceis de governar com segurança.
A abordagem do Ehecoatl
O Ehecoatl não tenta substituir frameworks como Laravel, NestJS, Express ou outros. Ele atua em outra camada: runtime e infraestrutura para aplicações multi-tenant.
Em vez de tratar multi-tenancy apenas como uma preocupação da aplicação, o Ehecoatl tenta tratar isso também como uma preocupação operacional.
Cada tenant pode ter:
- processo próprio
- usuário restrito no sistema
- diretório próprio
- configuração de domínio própria
- regras de rede próprias
- apps/workers isolados dentro do tenant
Exemplo simplificado:
supervisor Ehecoatl
├── processo do tenant A
│ └── apps/workers isolados
├── processo do tenant B
│ └── apps/workers isolados
└── processo do tenant C
└── apps/workers isolados
A proposta não é prometer o mesmo nível de isolamento de uma VM completa ou de uma stack de containers bem configurada. A proposta é reduzir risco operacional e oferecer limites mais fortes por padrão para SaaS multi-tenant com economia de recursos e agilidade de gerenciamento.
Por que estou postando aqui
O projeto ainda está em fase inicial, mas já estou servindo o próprio site e sistema de newsletter do Ehecoatl, e docs nesse sistema como uma forma de comprovação do funcionamento.
Algumas perguntas:
- Você usaria isolamento por processo em um projeto SaaS multi-tenant?
- Em quais cenários essa abordagem faz sentido, e em quais ela deixaria de ser uma boa opção?
- Esse modelo faz sentido para produtos white-label ou agências que gerenciam aplicações para múltiplos clientes na experiência de vocês? A minha experiência aponta que sim, mas é bastante limitada a projetos menores.
- O que vocsê esperariam de um runtime multi-tenant antes de confiar nele?
- Você preferiria isso como runtime independente, complemento de framework ou camada de deploy?
Links
GitHub: https://github.com/ehecoatl/core
Docs: https://docs.ehecoatl.com.br
Website: https://ehecoatl.com.br
Qualquer crítica de arquitetura, segurança, DX ou posicionamento é muito bem-vinda.
Fonte: https://core.ehecoatl.com.br