O blog da AWS
Como a MaisTODOS modernizou sua Conta Digital PJ com AWS App Runner
Por Odair Silva, Gerente de Engenharia de Software na MaisTODOS; Igor Magro, Desenvolvedor de Software na MaisTODOS; Guilherme Augusto, Tech Lead na MaisTODOS; João Nascimento, Arquiteto de Soluções na AWS e Daniel Abreu, Account Manager na AWS.
A MaisTODOS
A MaisTODOS é uma empresa de soluções financeiras inteligentes com um ecossistema completo, integrado e acessível, a marca conecta pessoas e negócios a soluções de Cashback, Crédito, Pagamento e Conta Digital, sempre com simplicidade, inovação e confiança. Fundada em 2019 em Ribeirão Preto, a MaisTODOS está presente em todo o Brasil, com milhões de usuários ativos e milhares de parceiros. Tem como diferencial um modelo de negócios B2P – Business to People – onde o foco está nas pessoas e no impacto positivo gerado em suas vidas e trajetórias. É a fintech oficial do Grupo TODOS, tem em seu portfólio o Cartão de TODOS, a rede de clínicas médicas AmorSaúde, dentre outras unidades de negócio.
A empresa rapidamente se destacou ao oferecer uma Conta Digital completa que simplifica a vida financeira de empresas de todos os portes. Com um portfólio abrangente que inclui serviços como Pix, TED, folha de pagamento e uma série de outras funcionalidades essenciais, a MaisTODOS se posiciona na vanguarda da transformação digital do setor bancário. Desde sua concepção, a MaisTODOS abraçou a tecnologia como seu principal diferencial competitivo. A Conta Digital PJ da MaisTODOS nasceu com uma arquitetura serverless na AWS, uma decisão estratégica que inicialmente permitiu um crescimento acelerado e uma capacidade de inovação sem precedentes. Esta abordagem possibilitou que a MaisTODOS lançasse novos produtos e features com agilidade.
Desafio
O sucesso inicial da MaisTODOS trouxe consigo desafios significativos. À medida que a base de clientes crescia exponencialmente e o portfólio de serviços se expandia, a arquitetura Serverless original começou a mostrar suas limitações. O que antes era visto como uma solução elegante e eficiente, agora se tornava um gargalo para o crescimento sustentável da empresa.
O primeiro grande obstáculo enfrentado pela equipe de engenharia foi o limite de tamanho do pacote AWS Lambda. O monorepo que inicialmente centralizava todas as funções Lambda e a infraestrutura, escrito em Chalice, atingiu rapidamente o tamanho máximo permitido. Mesmo com a implementação de Service Layers, uma medida mitigadora, o problema persistiu. A natureza do desenvolvimento em Python, com seus numerosos módulos, agravavam significativamente esta situação, levando a um cenário onde até mesmo funções Lambda simples carregavam uma quantidade excessiva de código desnecessário para seu contexto específico de execução.
Os deployments emergiram como outro ponto crítico no processo de desenvolvimento. O procedimento que anteriormente se caracterizava por sua agilidade e simplicidade transformou-se em um processo moroso, consumindo aproximadamente 20 minutos a cada atualização. A situação agravava-se pelo fato de que qualquer modificação, independentemente de sua magnitude, demandava a reimplantação integral de toda a stack de serviços. Esta limitação não apenas comprometia a produtividade da equipe técnica de desenvolvedores, mas também introduzia vetores de risco desnecessários a cada ciclo de atualização, comprometendo a estabilidade e segurança do ambiente.
A complexidade do ambiente de desenvolvimento local tornou-se um obstáculo crítico. Testar APIs Lambda localmente, já naturalmente desafiador pela ausência do contexto de execução completo, transformou-se em processo quase inviável com o crescimento do projeto. Nossa equipe adota testes unitários elaborados e Mocks baseados em contratos para validar integrações. Embora eficaz, esta abordagem consome tempo considerável e dificulta iterações rápidas. Em um projeto desta magnitude, a configuração de um ambiente local completo para testes abrangentes representa uma sobrecarga significativa para os engenheiros, comprometendo a eficiência do desenvolvimento.
Por fim, a escalabilidade tornou-se uma preocupação crescente. A arquitetura inicial, embora tenha servido bem à MaisTODOS em seus estágios iniciais, começava a mostrar suas limitações diante do crescimento acelerado da empresa. Funcionalidades mais sofisticadas, como locks distribuídos e gerenciamento de estado da aplicação, tornaram-se necessárias, mas eram difíceis de implementar na arquitetura existente.
A liderança da MaisTODOS identificou que era o momento de evoluir a infraestrutura tecnológica. Era necessário desenvolver uma solução que preservasse os pilares de agilidade e eficiência – fatores determinantes para o sucesso atual da empresa – enquanto implementava a robustez e escalabilidade essenciais para sustentar a próxima fase de crescimento. Em conjunto com a equipe de Engenharia, foi realizada uma análise aprofundada que apontou a necessidade de evolução da aplicação, estabelecendo como requisitos prioritários:
- Otimização do processo de implantação: Redução significativa do tempo necessário para deploy de novas funcionalidades e correções
- Arquitetura modular: Desenvolvimento de componentes-chave agnósticos a contextos específicos, eliminando dependências desnecessárias e favorecendo a reutilização
- Eficiência em testes: Diminuição do overhead nos processos de teste de APIs, acelerando ciclos de desenvolvimento
Solução
A equipe de engenharia da MaisTODOS, em colaboração com arquitetos de soluções da AWS, chegou a uma decisão transformadora: migrar suas APIs transacionais para containers utilizando o AWS App Runner.
A equipe considerou várias alternativas, incluindo o Amazon EKS e o Amazon ECS Fargate. No entanto, o App Runner se destacou por oferecer um equilíbrio único entre simplicidade operacional e poder de computação escalável.
Os principais fatores que influenciaram a decisão foram:
- Simplicidade operacional: O App Runner proporcionou uma experiência de desenvolvimento e implantação intuitiva, alinhando-se perfeitamente às necessidades da equipe MaisTODOS. A possibilidade de desenvolver, empacotar e implantar aplicações sem gerenciar a complexidade infraestrutural subjacente representou exatamente a solução que era almejado.
- Integração direta com VPC: A segurança e conectividade com recursos existentes constituíam preocupações fundamentais. O App Runner destacou-se por oferecer conexão nativa com VPCs e subnets privadas, garantindo integração fluida com nossa infraestrutura estabelecida sem comprometer os protocolos de segurança.
- Otimização de custo inteligente: O mecanismo de auto-scaling do App Runner apresentou potencial significativo para otimização de recursos financeiros. Esta característica mostrou-se especialmente valiosa para serviços com padrões de tráfego variáveis, como nosso sistema de Folha de Pagamento, permitindo ajuste dinâmico de capacidade conforme a demanda real.
- Modernização gradual: A plataforma viabilizou uma abordagem de migração estratégica e progressiva. Foi possível iniciar com serviços de menor criticidade, validar meticulosamente a metodologia e, posteriormente, expandir a implementação para componentes centrais do sistema, minimizando riscos durante a transição.
A MaisTODOS implementou um plano estratégico de migração estruturado em duas fases distintas:
Fase 1: Migração piloto do sistema de Folha de Pagamento
Selecionamos criteriosamente o serviço de Folha de Pagamento como ponto inicial da migração por características estratégicas: seu elevado volume financeiro e comportamento sazonal previsível, com picos concentrados nos períodos de pagamento. Esta sazonalidade nos proporcionou janelas adequadas para eventuais ajustes durante a implementação.
O processo consistiu na transição do monorepo baseado em Lambda para uma nova arquitetura desenvolvida com FastAPI – framework Python reconhecido pela excelente performance e curva de aprendizado otimizada. Após a criação da imagem e seu armazenamento no ECR, realizamos o deployment no App Runner com notável simplicidade, inclusive nos aspectos de conectividade de rede.
Esta fase inicial funcionou como prova de conceito robusta, permitindo à equipe técnica validar completamente o modelo operacional e refinar os processos de integração e entrega contínuas (CI/CD).
Fase 2: Migração completa do Core Bancário
Impulsionados pelos resultados excepcionais da implementação inicial e pela eficiência operacional proporcionada pelo App Runner, expandimos o escopo da migração para cobrir todo o core bancário. Esta etapa mais ambiciosa compreendeu a implementação de todos os serviços transacionais críticos do ecossistema financeiro, incluindo operações Pix, TED e demais funcionalidades essenciais que sustentam tanto o aplicativo móvel quanto a plataforma de internet banking.
Paralelamente, o monorepo original foi significativamente simplificado, mantendo apenas componentes essenciais como filas Amazon SQS, tópicos Amazon SNS e funções Lambda pequenas e específicas.
A arquitetura resultante é um híbrido de serviços Serverless e Containerizado. Os serviços no App Runner se comunicam com recursos AWS existentes e sistemas on-premises quando necessário, mantendo a segurança e a performance.
Conclusão
A modernização com App Runner trouxe benefícios transformadores para a MaisTODOS, impactando positivamente diversas áreas da operação:
Produtividade de Desenvolvimento: O ambiente de desenvolvimento local foi simplificado com o uso de containers. Os desenvolvedores agora podem replicar com precisão o ambiente de produção em suas máquinas locais, reduzindo discrepâncias e acelerando o ciclo de desenvolvimento. A modularização do sistema permitiu que diferentes equipes trabalhassem de forma mais independente, com bases de código separadas. Isso não apenas melhorou a produtividade, mas também reduziu conflitos e dependências entre equipes.
Agilidade Operacional: O pipeline de deployment leva agora aproximadamente 1 minuto para ser executado, já contando todos os passos de contrução (build), testes e deploy da imagem no ECR. O App Runner, por sua vez, leva aproximadamente 5 minutos pra concluir uma implantação da maneira que o configuramos atualmente. Reduzindo em 70% o tempo de implantação total.
Otimização de Custos: Quando não existem mais requisições, o App Runner entra em um estado de standby. Durante esse período é cobrado apenas pela memória alocada. Dessa maneira conseguimor otimizar o custo do ambiente durante todo o tempo, mesmo durante o dia, sem nenhuma penalização na experiência do cliente. A ausência da necessidade de gerenciar clusters complexos liberou recursos significativos, tanto financeiros quanto humanos, que puderam ser redirecionados para iniciativas de inovação.
Escalabilidade e Performance: Com o App Runner, a MaisTODOS observou uma melhoria significativa na capacidade de lidar com picos de tráfego. Por exemplo, durante os períodos de processamento de Folha de Pagamento, o sistema agora escala automaticamente para atender à demanda, sem intervenção manual.
A utilização do App Runner nos tornou mais ágeis, agora podemos alavancar o desenvolvimento de novos produtos de maneira muito mais simples. Se, por algum motivo precisarmos partir para uma solução com EKS ou ECS Fargate, nossas imagens já estão no ECR e portanto teremos um reaproveitamento do trabalho já executado. Isso nos levou a concluir que o App Runner também pode servir como uma stack intermediária para empresas que precisam validar suas ideias de forma rápida e sem perder tempo pensando em como administrar um cluster.
Continuaremos investindo em soluções como App Runner que nos permitem fazer o que realmente importa: inovar e superar as expectativas dos nossos clientes.
Sobre os autores
![]() |
Odair Silva é Gerente de Engenharia de Software e possui mais de 15 anos de experiência em Tecnologia, abrangendo áreas de Cloud, Dados e Software. Dedicou grande parte de sua carreira ao setor financeiro, especialmente pagamentos e core bancário, liderando a tecnologia de produtos dessas áreas através de experimentação e inovação. |
![]() |
Igor Magro é um desenvolvedor de software com 6 anos de experiência, grande parte dela no setor financeiro, atuando em corretoras e no setor bancário. Durante sua trajetória, assumiu o papel de tech lead em diversas squads de desenvolvimento, contribuindo para a entrega de soluções eficientes e robustas. |
![]() |
Guilherme Augusto é Tech Lead com mais de 6 anos de experiência em desenvolvimento de software. Especialista em aplicações mobile, tem liderado equipes multidisciplinares no setor financeiro, construindo soluções digitais escaláveis e de alto impacto. |
![]() |
João Nascimento é Arquiteto de Soluções na AWS |
![]() |
Daniel Abreu é Account Manager na AWS. |
Revisores
![]() |
Michelle Pérez é Arquiteta de Soluções Enterprise na AWS |
![]() |
Daniel Abib é Arquiteto de Soluções Sênior e Especialista em Amazon Bedrock na AWS |