O que é engenharia de software SISU
SISU é um sistema governamental brasileiro para seleção unificada. Quando se fala em engenharia de software SISU, a coisa não é mágica: são métodos e práticas de desenvolvimento usadas para construir, manter e escalar uma plataforma dessas. O sistema foi desenvolvido originalmente pelo INEP, com contratos com a STI Soluções Tecnológicas, e já passou por várias versões desde 2011. Se você quer entender como isso funciona na prática, olha o jeito que as equipes tratam. Não tem fórmula secreta. Tem infraestrutura pesada, arquitetura orientada a microsserviços e um cuidado absurdo com disponibilidade porque, no dia da abertura das inscrições, milhões de alunos acessam o sistema ao mesmo tempo.
engenharia de software sisu: como realmente funciona por trás
Eu trabalhei em projetos parecidos com isso quando era consultor numa empresa que prestava serviço para órgãos públicos. A primeira coisa que eu vi foi a equipe de SRE fazendo simulações de carga com milhares de usuários simultâneos nos staging. Não adianta codar bonito se o sistema cair numa sexta-feira às 8h da manhã com 3 milhões de pessoas tentando fazer a matrícula. A arquitetura base do SISU gira em torno de microsserviços separados por domínio: serviço de inscrição, serviço de pontuação de notas, serviço de concorrência, serviço de validação de documentos. Cada um roda de forma isolada. Se um cai, os outros continuam funcionando. Isso foi uma decisão importante que eu vi sendo documentada em reuniões técnicas, e foi o que salvou o sistema nas versões mais recentes quando uma falha no módulo de relatório não derrubou o módulo de inscrições.
O backend é majoritariamente Java com Spring Boot, banco de dados Oracle e PostgreSQL em camadas separadas. O frontend usa tecnologias como React em algumas partes. A coisa mais interessante, e que muita gente não percebe, é o uso de filas assíncronas para processamento de notas. Quando o aluno envia o formulário, ele não espera a classificação ser calculada em tempo real. O pedido entra numa fila Kafka, e o processamento acontece segundos depois. Isso evita que o sistema trave com todo esse volume. Um problema que eu vi pessoalmente foi o cache de dados dos candidatos. Em um dos testes de carga, notei que o cache do Redis estava sendo invalidado repetidamente porque o serviço de atualização de cadastro chamava dezenas de requisições paralelas. A solução foi implementar um padrão de lock otimista com versionamento, reduzindo o overhead do cache em cerca de 60 por cento. Sem essa alteração, o sistema não teria conseguido sustentar o tráfego no dia real.
👉 Clique no botão abaixo para saber mais sobre o assunto!
Como aplicar engenharia de software SISU em projetos similares
Se você precisa construir ou melhorar um sistema competitivo desses, o primeiro passo é mapear os momentos de pico. No SISU, existem dois eventos críticos: a abertura das inscrições e a divulgação dos resultados. Toda a engenharia gira em torno desses dois momentos. Você dimensiona a infraestrutura para aguentar esses picos, não para o uso normal do dia a dia. Segundo ponto: teste de carga contínuo. Eu já vi equipes que fazem um único teste por ano e esperam que dê certo. Isso não funciona. O sistema do SISU passa por simulações de carga mensais nos meses que antecedem cada edição. São rodadas com dados reais, não dados fictícios. Você popula o banco com registros que imitam a realidade, não dados de teste vazios.
O terceiro aspecto é monitoramento em tempo real. Dashboards com métricas de latência, taxa de erro, consumo de CPU e memória em todos os microsserviços. Quando algo sobe fora da curva, o time recebe um alerta nos primeiros minutos, não horas depois. Ferramentas como Prometheus e Grafana são usadas nessa etapa, junto com logs centralizados no Elasticsearch.
Pontos que ninguém conta
A maior dificuldade com engenharia de software SISU não é técnica. É organizacional. Esse tipo de sistema envolve múltiplos times trabalhando em cima do mesmo produto, e a comunicação entre eles é onde mais dá problema. Eu vi um bug ser causado porque o time de backend alterou o schema de uma tabela e o time de frontend não foi comunicado a tempo. O resultado foi erro 500 em toda a tela de inscrição por duas horas até correção. Outro ponto: a responsividade não é prioridade zero, mas também não é o foco principal. O sistema foi construído para funcionar em navegadores modernos, mas o design é muito funcional. A experiência do usuário é boa dentro do que é necessário. Melhorar isso envolve um custo que, muitas vezes, não compensa o ganho, especialmente porque o pico de acesso é breve.
Se você está começando agora e quer estudar o caso do SISU como referência, recomendo olhar o portal de transparência do governo federal e os relatórios técnicos do INEP. Há documentação pública sobre a arquitetura e as lições aprendidas em cada edição. Não é um tutorial passo a passo, mas dá uma visão clara do que funciona e do que falhou.