Por que você deveria fazer um ERP? 22/09/2026 # Por que você deveria fazer um ERP? Um ERP - Planejamento de Recursos Empresarias é um projeto que todos devem fazer, e neste post eu te explicarei o porquê.  ## ⛰️Desafios Nós crudmaker's estamos acostumados a fazer o feijão com arroz, mas para nos tornarmos crudmaker's de verdade, o ERP é o primeiro caminho, pois para o desafio ser interessante você precisa resolver o problema real de alguém, no meu caso eu resolvi o problema da minha esposa que é Taróloga, ela tem regras de negócios bem especificas que basicamente só acontece no negócio dela, e isso é lindo para exercitar. Cito aqui para você leitor algumas coisas que você deve se preocupar para fazer o ERP: * Coleta de Requisitos * Escolha da Arquitetura * Escolha do Banco de Dados * Escolha da Linguagem * Modelagem de Dados * Fluxos * Processamento Assincrono * Auditoria(Histórico Imutável) * Segurança. * Relatórios ## 🕵🏻♂️Coleta de Requisitos Aqui separa os meninos dos homens(e as meninas da mulheres), você não vai direto pro código, primeiro você precisa entender a dor do seu cliente. No caso da minha esposa ela tinha uma planilha no excel para anotar os trabalhos feitos e a parte financeira, e o Whatsapp onde ficavam os seus clientes. Ou seja, não tinha como fazer relatórios de forma eficiente de como estava indo o mês, não tinha dados para conhecer os clientes dela para oferecer promoções. Eu cheguei a conclusão que ela precisava ter um local central para os dados dela.  Levantei os requisitos funcionais(Aquilo que o usuário precisa fazer) e não funcionais do projeto(Como deve se comportar por debaixo dos panos) e fui para o próximo passo. ## 🏛️Escolha da Arquitetura Como minha nobre esposa é MEI, e não tem uma equipe dedicada, uma arquitetura mais simples resolve o problema. Utilizei o design de sistema do monólito modular, se um dia houver a necessidade de escalar a equipe de código não fica tão dificil. Além de eu conseguir preservar algo muito importante do SOLID, que é aberto para extender, mas fechado para modificar. Fica muito fácil adicionar features novas, já que basicamente se tornam um módulo novo.  Aqui está uma amostra visual do que acontece na prática:  ## 🎲Escolha do Banco de Dados Para esse projeto para 1 pessoa usar, sinceramente poderia ser até um SQLite, mas como tem muitas relações em muitas tabelas, o ideal já seria pelo menos pensar em um MariaDB da vida que também daria conta com os pés nas costas. Então por qual motivo escolhi Postgresql? Além da sua performance incrível de rápida o seu FullTextSearch é superior, além de lidar com JSON nativamente, e o JobRunr usa JSON's no banco de dados, então nada mais justo do que escolher ele. Por qual motivo escolhi um banco de dados relacional? Simples, os dados são estruturados e não vão mudar, além da garantia ACID. Mas, reforço, um MariaDB é mais do que o suficiente para este projeto. ## Escolha da linguagem Atualmente com IA, sinceramente tanto faz, escolhe a que mais te agrada. Como é um projeto que não precisa de performance extrema e poucas pessoas utilizarão, daria pra fazer até com um python ou javascript da vida. Não há uma linguagem que daria muita vantagem sobre a outra para esse projeto, a não ser que você pretenda fazer um ERP para uma empresa com 100 mil usuários, ai talvez a escolha da linguagem comece a influência um pouco mais. Escolhi Java por ser uma linguagem madura no mercado, e a sua rigidez é ótima para sistemas corporativos que evita quebrar as coisas. ## 🎲Modelagem de dados e Fluxos Agora é a hora mais divertida do projeto. Pensar como ficará organizado os dados no Banco. Para isso você precisa pensar no design do sistema que escolheu, quem se relaciona com quem, e em um ERP tem relações para todos os lados que você imaginar. ## 📈Processamento Assíncrono Você deve estar curioso por qual motivo tem um sistema de filas e Job's. Muito simples, eu agendo os relatórios por lá, ele processa em background e envia automaticamente, e se cair a energia, a fila continua no banco de dados para continuar de onde parou. Além de liberar logo o frontend e mandar um recado que logo logo chega pra pessoa. Envio de mensagens para o telegram e e-mail's, vão tudo para fila, além dos agendamentos, ficam tudo por lá e eu não preciso lidar com polling, sempre que puder, terceirize a culpa, eu decidi culpar o Jobrunr, além de ele ter um painel legal pra acompanhar tudo. ## 🤔Auditoria Eu confesso que o meu sistema tinha auditoria, mas eu tirei por ter feito algumas coisas erradas. Mas, faça o que eu te digo e não o que eu te falo. Você precisa de auditoria pois um ERP é o coração da empresa, normalmente as empresas trazem auditores externos para ver se não há baguncinhas na empresa. E o lado mais fraco da história é o seu, quem garante que não fizeram uma baguncinha e colocaram a culpa no programador? Como você se defende caso a LGDP bata a sua porta caso não haja auditoria? Fique com esta reflexão. ## 🔒Segurança Aqui você deve se preocupar fortemente com isso, você deve saber a diferença entre autenticação e autorização, os dados devem ser separados por usuário e todo o cuidado é pouco para a LGPD não bater em sua porta e fechar a sua espeluca. ## 💼 Relatórios Gerar relatórios é um verdadeiro saco e você deve ter cuidado com isso. Igual no frontend, você DEVE paginar a geração de um relatório caso ele seja grande. Senão, não haverá ram no mundo que aguentará todos os dados. Imagina que você lança um SQL pro banco de dados que te retorna 200MB de dados. São 200 MB de dados na sua RAM que depois se transformam em 400 MB pois a sua biblioteca de PDF terá que escrever os dados antes de mandar pro discos. 2 coisas para contornar isso são: * Paginar a busca do SQL * Usar uma biblioteca de PDF que escreva direto no disco Isso alivia bastante o uso de memória ram do seu projeto. ## Algo que eu ainda vou acrescentar Soft delete, você não deveria apagar dados do banco de dados, principalmente por conta da auditoria, mas isso é mais comum para empresas grandes, eu fiquei com preguiça de colocar soft delete neste projeto pequeno para uma MEI. Dito tudo isso, um enorme beijo na sua boca, meu caro leitor.