Como conectar sistemas criando integrações resilientes
O primeiro passo para construir uma integração resiliente é justamente considerar que, cedo ou tarde, algum problema vai aparecer

No senso comum, a expressão resiliência pode ser entendida como a capacidade de se adaptar às mudanças, absorvendo situações sem grandes traumas. Na física, o sentido é semelhante: diz respeito à elasticidade que faz com que certos corpos deformados voltem a sua forma original. Somando estas duas visões, em integração de sistemas e dados podemos dizer que ela é resiliente se mostrar adaptabilidade e/ou se recuperar em meio a uma situação adversa ou problemática. Caso contrário, está sujeita a paradas e interrupções por conta de qualquer questão que possa surgir no futuro.
A consultoria Gartner, responsável pelo quadrante que indica as melhores soluções IPaaS (plataformas de integração como serviço, em inglês), aponta justamente esta elasticidade como um dos recursos importantes deste conceito. Já uma pesquisa realizada pela Data Bridge Market Research mostra que este mercado deve movimentar mais de US$ 1,5 bilhão até 2025, com um crescimento médio anual de 41,7% no período. Não à toa é apontada como uma das principais tendências digitais nos próximos anos.
O primeiro passo para construir uma integração resiliente é justamente considerar que, cedo ou tarde, algum problema vai aparecer, comprometendo nem que for por um curto período de tempo. Na teoria, isso não deveria acontecer uma vez que existiria governança e infraestrutura controlada. Em termos práticos, porém, é preciso reconhecer que nada possui disponibilidade todo o tempo, a integração envolve diferentes sistemas e camadas (que podem estar indisponíveis ou com sobrecarga) e que estão sujeitos à disponibilidade de uma infraestrutura que passa por centenas ou milhares de empresas e/ou equipamentos.
Com a consciência de que as coisas podem falhar de uma hora para outra, o próximo passo é visualizar um caminho que permita a construção de algo que realmente se adapte às mudanças. Hoje, existem diferentes técnicas para isso, mas duas delas podem ser consideradas imprescindíveis quando falamos de integrações de sistemas: a idempotência e o controle de envio e retentativas.
A primeira ideia consiste na preparação do sistema e/ou camada para não afetar o resultado final se houver recebimento/processamento da mesma informação mais de uma vez. Sim, isso pode acontecer. Um dos cenários mais comuns é quando a ponta que “recebe” essa informação leva mais tempo para processá-la do que a que “envia” está disposta a aguardar. Assim, presume-se que há um timeout, ou seja, que o destino não recebeu o que deveria receber, e ocorre um reenvio. Se não houver preparação, a solução pode enfrentar problemas.
Já o controle de envio e retentativas é outro ponto fundamental para integrações resilientes. Como já comentado, pode acontecer de um dos destinos não estar disponível ou, então, ficar sobrecarregado naquele momento. Nestas situações, é fundamental interpretar que a integração não foi realizada e realizar uma nova tentativa mais tarde. Contudo, a dica é garantir que estes envios sejam escalonados, ou seja, em períodos regulares. Por exemplo, em um, cinco e dez minutos, em uma hora, quatro horas, um dia e assim por diante.
Estas duas situações são exemplos comuns que acontecem no dia a dia das empresas que realizam integrações. Também reforçam cenários onde os sistemas se transformam em opções mais escaláveis, robustos, e práticos ao invés de buscar a conexão ponto a ponto (P2P) ou manualmente – uma vez que este tipo de recurso é oferecido de forma mais transparente pela plataforma. Em um mundo mais competitivo e dinâmico, garantir que todas as soluções estejam funcionando de forma correta e, principalmente, que mostrem resiliência aos problemas de integração que possam surgir é um diferencial estratégico importante que determina o sucesso do negócio.
* Marcelo Aguiar é CTO na Wevo Tecnologia