[W] Vamos começar oficialmente, gravando a nossa sessão. Primeiramente, eu gostaria de agradecer a todos presentes, em especial ao Rafael. O Rafael vai trazer um papo extremamente “cabeludo”, um papo extremamente complexo, então, antes dele começar a falar eu gostaria de alinhar algumas expectativas com vocês sobre o que vai ser falado hoje aqui.

O negócio é o seguinte: quando estamos trabalhando com a linguagem GO, ou independentemente da linguagem, sempre vamos querer ter mais performance. Sempre vamos querer escalar, sempre vamos querer transacionar ao máximo. O grande ponto é que existem negócios que são muito mais complexos do que simplesmente dar um “insert” numa linha no banco de dados.

Existem negócios com diversas regras que vão sendo atribuídas e seguidas num determinado passo e, se tudo der certo, está todo mundo feliz, mas se as coisas não derem certo, a gente tem que sair desfazendo esse tipo de coisa. Mais ou menos quando você inicia um banco de dados lá dando um “begin”, “commit" ou senão o “rollback”. O grande ponto é que muitas vezes esse “begin” que você inicia e o commit que você vai colocar no final não é uma transação de banco de dados. São diversas transações que estão sendo chamadas em diversos sistemas, e não tem mágica. No final do dia, não é, necessariamente, apenas a linguagem de programação nesse caso que vai te salvar, o que vai te salvar nesses momentos é a abordagem de como você resolve esses tipos de problemas.

Para resolver esse tipo de problema, nós temos diversos padrões, inclusive, para que você consiga trabalhar, por exemplo, com orquestração de microsserviços. Para que você consiga garantir que diversas etapas são cumpridas ou elas são voltadas. E o nosso amigo aqui Rafael… tive o prazer de assistir ao bate-papo dele na “Gophercon” em 2023. Ele trouxe algo que é um conteúdo extremamente difícil de produzir. E esse conteúdo é difícil de produzir, porque você tem que ter necessidade de utilizar essa abordagem. Talvez muitas pessoas que estejam assistindo a esse vídeo nesse momento vão passar pela carreira inteira, com 30 anos de carreira, e talvez não precisem utilizar essa abordagem.

Por outro lado, talvez você que esteja assistindo seja o sortudo que vai ter que passar por esse tipo de situação, então o nosso amigo Rafael vai compartilhar com vocês sobre como conseguir trabalhar com um padrão chamado Saga. Ele é um padrão que não é tão convencional, nem sempre você precisa, mas quando você precisa, você tem que saber implementar. O mais interessante de tudo isso é que toda essa implementação, toda essa história que ele vai trazer foi feita utilizando a linguagem GO. Então, isso nos mostra a possibilidade que o Go tem de navegar por diversos tipos de softwares, por diversos tipos de abordagens arquiteturais para facilitar nossa vida no dia a dia.

Oficialmente, eu queria chamar o Rafael para ele explicar, explanar para a gente como é essa Saga, literalmente, que foi conseguir trabalhar para vocês. Ele vai se apresentar… não quis falar muito sobre ele, porque ele vai falar aqui para você. Vai se apresentar, vai mostrar… já deu até uma dica de onde ele trabalha e tudo mais. Então, vou deixar com ele para ele bater um papo e depois, no final dessa talk, eu vou fazer algumas provocações, vou tentar cutucar um pouco. Se vocês tiverem alguma dúvida, vocês também fiquem à liberdade de colocar para conseguirmos fazer um papo bem produtivo para que todo mundo possa aprender bastante.

[R] A introdução foi ótima, acho que não sei se sorte é bem o termo para usar, quando você precisar usar…chegar nesse tipo de problema para resolver, mas tem um amigo que costuma descrever essas coisas como “o problema bom de ter”, se você está crescendo e tem novos problemas, é bom. Somos pagos para resolver problemas, então estamos aí.

Na parte de apresentação: Rafael, paulistano, casado, pai do Théo e da Helena, que curiosamente estavam correndo lá no evento enquanto eu estava falando. Formado em, na parte tecnólogo, Análise e Desenvolvimento de Sistemas pelo Instituto Federal de São Paulo e pós em Engenharia de Software pela PUC São Paulo. Hoje eu estou no papel de arquiteto de soluções no Mercado Bitcoin. Não sei quantos aqui conhecem o Stalin, essa dialética MB. Eu tenho que explicar o que é MB, porque tem vários significados no mundo. Mas o Mercado Bitcoin é uma plataforma de criptoativos, não só isso dessa forma como a gente aprendeu hoje em dia…

[W] Eu sou cliente de vocês.

[R] Bastante gente conhece já, a gente compra Bitcoin. Tem algum cripto na carteira, vai se inscrevendo lá, se cadastra no site, enquanto eu estou falando essas coisas. Para a gente fazer um bom jabá.

A MB é a maior plataforma de criptoeconomia da América Latina. Das empresas que estão aí desde quando era mato, desde 2013 em operação. Começou só com um ativo, que era o Bitcoin, que veio daí o nome da empresa também. Começou a ofertar outros tipos de ativos, outras classes, e veio crescendo ao longo do tempo e se institucionalizando também. Esse é um ponto muito importante de toda a jornada, porque cada um desses títulos aqui é literalmente de uma empresa diferente dentro do grupo. Temos na tecnologia a Lei de Conway, a questão de que os nossos sistemas são tão complexos… são complexos à medida que a estrutura da empresa é complexa, então por aqui a gente começa a ter um pouco de ideia de possíveis problemas que a gente tem no dia a dia. Seja pelas jornadas como elas vêm crescendo, ou mesmo por algumas aquisições. Quem já viu aquisição de empresa, fusão de empresa, sabe que TI é uma parte que sofre bastante… Os sistemas em geral… com a consequência disso, muita coisa faz sentido para o negócio e a gente tem que costurar muita coisa ali no “palitinho” para continuar rodando. Então, tudo nasceu da Exchange mesmo. Então, até o caso de uso que eu trago aqui é da corretora em si, que é a marca que a gente conhece. A gente vê o site, vê o aplicativo, faz a interação entre o usuário final. Mas tem toda essa outra dinâmica da parte institucional, com outros clientes diferentes, clientes que são puramente do ecossistema financeiro, aquelas empresas que a gente como consumidor final nem conhece, nem imagina que existem, mas o mercado financeiro é bem complexo em relação aos papéis e cada empresa está aí de atuação.

Com isso, o que temos no caso específico da Exchange? Como falei, é a primeira empresa do grupo. Tem um sistema Core aqui monolítico, que não é em GO. Beelash 2013. Ele é em Python e é um sistema mega complexo de tudo, de todo cenário que você imaginar, inclusive em consequência das fases da empresa. Porque era o sistema que fazia tudo e foi ficando grande. Ao longo do tempo, a empresa cresce e diminui sendo startup e você começa a ver claramente que dentro do mesmo sistema tem muitos padrões diferentes, porque tiveram várias iniciativas de boa vontade de melhorar algumas coisas que não foram concluídas. Então, a consequência de tudo depois é um caos.

Tem uma característica do negócio que ele tem uma sobrecarga de funções, de corretora e bolsa. Para exemplificar, a bolsa aqui para a gente é a B3, que era a  Bovespa, com as fusões depois, a B3. A corretora que a gente tem via banco, via empresas que a gente vê,  sempre a gente consegue ter uma interface para o sistema financeiro.

Diferenças importantes: a bolsa tem que prover a liquidez daquilo. Tem que manter funcionando sistemas dentro dos acordos. Tem toda uma relação institucional B2B com as corretoras. A corretora faz o B2C. A corretora é que vai fazer de repente algum QIC, gestão de riscos, limites com aquele usuário final. E se trazer tudo isso para o meu CNPJ, você começa a ter a questão de: quem eu atendo  primeiro? Como a gente conversa nesse universo?  

E a gente passou por um hiper crescimento em 2021. 2021 foi o ano mais marcante para criptoativos e o nosso crescimento foi na escala de… de janeiro a março de 2021 nós processamos o mesmo que 2020 inteiro e só no mês de abril, que foi o nosso mês recorde histórico, a gente processou mais do que a gente processou de 2013 a 2020. Fizemos 8 anos em um mês. Literalmente, teve muita alegria para todos os lados. Receita. Crescimento. Exponencial. Você vê startups, em questão de valuation crescendo, viramos unicórnio, aqui em 2021 também, veio a porta do SoftBank. E algumas coisas mudam de figura, eu costumo brincar que virar unicórnio é muito parecido com final feliz de conto de fadas, todo mundo quer isso, mas ninguém sabe o que vem depois. O que vem no dia seguinte. 

E a gente tinha a ideia do SoftBank… aportou dinheiro no MB para ter uma escala global. Para se tornar então legal tudo que faz, a proposta de valor é boa. É uma empresa que é pró-regulamentação, então isso é positivo para o mercado porque traz segurança jurídica para o mercado. Então depois, como consequência, traz mais dinheiro para o mercado. Porque quem é grande de verdade só vai entrar quando tiver segurança jurídica. Então, isso é muito bom,  trabalhar desse modelo em mais países. Essa é a aposta. Ao mesmo tempo, aumenta mais a complexidade da empresa, então para fazer isso acontecer, vêm novos diretores, novas áreas, trazendo um novo perfil de clientes para a plataforma, que é  o que a gente chama do market maker. Um cara que literalmente tem um robô extremamente agressivo, que roda 24/7 em sistemas. Então, a gente reduz a janela de manutenção. Sempre foi um sistema 24/7, só que é diferente quando as pessoas não têm esse apetite todo. Quando eles veem os sistemas realmente grandes, eles têm um apetite muito diferente de consumir as coisas.