Nesse sábado vai rolar o Mensageria .NET for Architects Day, um evento que gostaria de ter realizado há muito tempo!
Mensageria não é disruptivo apenas pela natureza assíncrona. Tampouco pela lavagem cerebral que sofremos ao aprendermos a programar, que nos faz esquecer da natureza caótica do dia-a-dia. Mensageria nos devolve o caos, agora nos eventos assíncronos disparados por cada ator simultaneamente.
A parte ruim é que muitos ficam pelo caminho, muitos profissionais, projetos, e a parte legal é que de certa forma: é desafiador e divertido!
Nesse evento, que acontecerá no sábado vamos dar vazão aos últimos conteúdos do Mensageria .NET for Architects, e finalizar essa entrega que dura alguns anos.
Minha história com Mensageria e RabbitMQ
Há 11 anos tive meu primeiro contato com RabbitMQ, eu queria processar alguns milhões de músicas, mas não podia me dar ao luxo de criar uma coluna na tabela, e não fazia sentido indexar aquilo que eu já havia processado em um arquivo. Criar novas tabelas em um novo banco não era possível também.
Me restou buscar um mecanismo que pudesse lidar com o controle do processamento de minhas tarefas, algo em que eu pudesse cadastrar minhas demandas de processamento e ele coordenasse para mim.
Eu havia entrado a pouco tempo na empresa, e não queria, naquele momento, pedir mais máquinas sem ter certeza de qual problema resolveria e se resolveria.
Pelas minhas contas, levaria quase 1 mês processando ininterruptamente. Para ser mais preciso próximo de de 20 a 25 dias.
Descobri o RabbitMQ estudando uma solução para esse problema, visto que era uma área de backoffice, portanto naquele momento, uma área sem muitos servidores disponíveis.
Desde então me apaixonei pelo produto, e principalmente pela rigidez aos padrões e conceitos, pela parte quase filosófica por trás dos conceitos que o RabbitMQ carrega consigo.
Coisas que o colega Alexander Mills ( ORESoftware ) é incapaz de compreender.
Empiricamente descobri coisas incríveis, como a capacidade de aumentar minha quantidade de consumers durante a noite, quando tinha uma demanda menor dos bancos de dados, e meu processo poderia consumir mais infra, reduzindo a quantidade de consumers pela manhã.
Isso me gerou a dúvida sobre o que aconteceria com as mensagens que fossem interrompidas, durante o processo de stop do meu processo.
Resiliência foi minha descoberta: “apertando alguns parafusos” era eu poderia matar o processo, fazer novos deploys e nada parava ou era perdido. O que era interrompido ou era processado por outro consumidor ou pelo meu próprio quando voltasse.
Então pude ver e aprender, em em slow motion, dia-a-dia exatamente tudo que uma aplicação pode usar com mensageria, assim empiricamente.
E desde então nunca mais parei de usar e falar de RabbitMQ, em especial de mensageria e seus conceitos.
A saga de estudar RabbitMQ e Mensageria
Aprender esses conceitos empiricamente produz um efeito negativo, em certo ponto, marcado pela falta de uma boa narrativa que explique os fenômenos.
Os fenômenos estão lá, são reproduzíveis, você consegue descrevê-los, mas há uma lacuna que não torna fácil torná-los lúcidos.
Elucidar cada um desses fenômenos, que são comuns ao nosso dia-a-dia, mas que acontecem morosamente, diferente dos nossos sistemas, em que acontecem milhares, milhões de vezes mais rápido, não é uma tarefa simples.
O conteúdo mais abundante sobre mensageria trata de como colocar mensagens em filas e como consumir mensagens de filas.
E é absoluta ingenuidade pensar que mensageria seria só isso, ou querer só isso, sem compreender seus conceitos.
Mas assim como Alexander, é o que o afegão médio quer.
Porém, há discussões muito mais interessantes do que como colocar e tirar mensagens de filas. Discussões sobre as teorias por trás de mensageria, como:
- Conceitos relacionados a event driven architecture
- Relação entre eventos e comandos
- Desacoplamento com eventos
- Cuidados com a riqueza de dados dos eventos
- Tamanho dos eventos
- Eventos passivo-agressivos
- Reaproveitamento de eventos
- Comandos e seu acoplamento direto com os processadores
- Resiliência
- Fluxo de Retentativa
- Fluxo de Mensagens não roteadas
- Como não perder mensagens
- Paralelismo e Concorrência
- Como permitir o paralelismo, e evitar a concorrência a objetos críticos de negócio
- Como metrificar o custo de paralelismo e concorrência
- Escalabilidade e sequencia
- Tamanho da mensagem
Estou falando de questões que vão tocar no produto, na implementação de mensageria com RabbitMQ, mas também em conceitos que dizem respeito à design e arquitetura de software.
Essas discussões pouco existem em formato público na internet. E levei alguns anos, me deparando com Alexanders em papéis de decisão, nas empresas daqui do Brasil, me fazendo buscar fundamentação naquilo que empiricamente havia descoberto anos antes.
Essas descobertas me fizeram produzir séries e séries de conteúdo no gaGO.io dedicado a ensinar gratuitamente mensageria com RabbitMQ.
O curso
Depois que criei o Docker Definitivo, falando de docker para a comunidade .NET, rolaram muitos pedidos para que RabbitMQ fosse também um curso.
Eu nunca me vi focado em RabbitMQ ao ponto de lançar um treinamento, eu nunca havia pensado nisso.
Mas a demanda apareceu e criei o RabbitMQ para Aplicações .NET, que mais tarde batizei de Mensageria .NET.
Ele foi lançado por volta de 2021, primeiro como uma masterclass, depois teve suas aulas regravadas, porque não gostei do resultado da gravação da masterclass.
É uma jornada de aproximadamente 10 horas (15 com o evento de sábado) dividida e ofertada em 2 subprodutos:
Mensageria .NET for Developers: Destinada a o mínimo que você precisa saber para não ser mais um afegão médio quando o assunto é mensageria.
Mensageria .NET for Architects: dedicado aos assuntos mais avançados e mais abstratos.
Porque da divisão?
Os assuntos abstratos pedem maturidade, pedem experiência prática, pois se você nem começou a usar RabbitMQ, não colocou em nenhum projeto ainda, o nível de compreensão e entendimento das questões abstratas fica comprometido.
Sem a experiência prática, as discussões ao redor dos temas avançados dão lugar às discussões sobre aquilo que o aluno deveria ter assistido mas subestimou.
Então a produtividade nessas discussões é muito baixa e não agrega nem para mim, nem para o aluno, portanto dividir as jornadas permite dialogar com públicos diferentes.
De um lado aqueles que querem aprender além do básico, e do outro aqueles que querem ver de forma prática, as questões mais abstratas e teóricas.
Então no Mensageria .NET for Developers eu abordo os módulos:
- ✅1 Introdução
- ✅2 Entendendo como o RabbitMQ entrega
- ✅3 Fundamentos
- ✅4 Instalação e Gerenciamento
- ✅5 Desenvolvendo com RabbitMQ
- ✅6 Resiliência com RabbitMQ
- ✅7 Patterns – RPC
- ✅8 Patterns
Enquanto no Mensageria .NET for Architects eu abordo os módulos:
- ✅1 Introdução
- ✅2 Entendendo como o RabbitMQ entrega
- ✅3 Fundamentos
- ✅4 Instalação e Gerenciamento
- ✅5 Desenvolvendo com RabbitMQ
- ✅6 Resiliência com RabbitMQ
- ✅7 Patterns – RPC
- ✅8 Patterns
- ⚠️9 Estudos de Caso
- ✅ 10 Event Driven Microservices | Concept
- ⚠️11 Event Driven Architecture | E-Shop EDA
- ⚠️12 RabbitMQ Streams
- ✅13 Update de Produção
- ⚠️14 Clustering
- ⚠️15 .NET ASPIRE
E todos os módulos com ⚠️são módulos pendentes, que nesse sábado dia 5/outubro vou entregar ao vivo em um evento no Google Meet para alunos.
- ⚠️9 Estudos de Caso
- ⚠️11 Event Driven Architecture | E-Shop EDA
- ⚠️12 RabbitMQ Streams
- ⚠️14 Clustering
- ⚠️15 .NET ASPIRE
E assim damos fim a essa jornada de conteúdo.
Como fazer parte?
O evento é para alunos, mas tem formas interessantes de você entrar.
Se você entrar no Mensageria .NET for Developers,
- 1 ano de acesso ao Conteúdo Gravado do do Mensageria .NET for Developers
- 1 mentoria do Mensageria .NET por mês
- Mensageria .NET for Architects Day | você terá acesso ao evento ao vivo.
todos os alunos do Mensageria .NET.
Já os alunos do Mensageria .NET for Architects, terão acesso ao evento mas também à gravação, na sua área de membros (por hora na kiwify).
- 1 ano de acesso ao Conteúdo Gravado do do Mensageria .NET for Developers
- 1 ano de acesso ao Conteúdo Gravado do do Mensageria .NET for Architects
- 1 mentoria do Mensageria .NET por mês
- Mensageria .NET for Architects Day | você terá acesso ao evento ao vivo.
- Gravação do Mensageria .NET for Architects Day
Os valores são os mesmos
- Mensageria .NET for Developers 12x R$ 100,10/ano
- Mensageria .NET for Architects 12x R$ 200,50/ano
Maaaaaassssss
estamos em campanha no Cloud Native .NET, onde temos a oportunidade de entrar no Cloud Native .NET por R$ 4997 e receber acesso ao:
- Mensageria .NET for Architects: R$ 1997
- Cloud Native .NET: R$ 4997
- Jornada Academia Pay R$ 1997 (ao vivo, diariamente, estamos construindo um Gateway de pagamento SaaS, com Microsserviços, devops e tudo que vemos no Cloud Native .NET)
E se você leu até aqui,
tem mais R$ 1000 de desconto,
ou seja R$ 333,09 por mês!!
Então temos opções de R$ 997, R$ 1997 e R$ 3997 que dão acesso ao evento.
Agora não é mais comigo!
Nos vemos no sábado!
0 comentários