logo

Curso

para aplicações .NET

com Luiz Carlos Faria

RabbitMQ entrega disponibilidade, eficiência, resiliência, confiabilidade e escalabilidade.

Transforme seus projetos em cases de sucesso.

Exclusivo para Dev's .NET

Fácil de preparar ambiente

Descomplicado

Faça no seu tempo

Gravado e Editado

Lives de QnA

Repositório de Demos

Suporte em Grupo

Se sua jornada passa pelo desenvolvimento de aplicações distribuídas, RabbitMQ com certeza é um dos fortes candidatos a te ajudar nessa jornada. Seja com microsserviços ou em monolitos com partes distribuídas, RabbitMQ é seu aliado na hora de coordenar a distribuição de mensagens de forma eficiente.

rabbitmq é uma opção comum quando

Encontramos alguns desses cenários

Mas sua aplicação parou de dar conta do recado, e está sofrendo com timeouts em consultas, seus processos batch estão demorando uma eternidade e você mensalmente tem de lidar com revisão do tempo de agendamento dos jobs?

Novos usuários, novos clientes, novas integrações estão demandando muito da sua infraestrutura?

Quando o volume de processamento cresce sua infraestrutura pede arrego?

Os custos com infraestrutura estão cada vez piores e você não vê perspectivas para reduzir isso? 

Seus sistemas utilizam o padrão Queries agendadas + For + Update para implementar seu workflow de negócio?

e vários serviços param junto com ele?

Está preocupado com os dilemas da escalabilidade? Está se perguntando sobre como não onerar seu banco ou como distribuir tarefas para diversos workers?

Até quando suas soluções serão apenas API + Banco?

API + Banco é o típico desenho de solução que atende até:

  • O volume de dados crescer.
  • As eventuais instabilidades de serviços causarem instabilidades em outros serviços.
  • Os batches começarem a sugar performance do seu banco de dados.
  • O crescimento de sua base de clientes e usuários começar a ser visto como um problema em vez de uma solução.
  • Seu custo de infraestrutura crescer desproporcionalmente em relação ao faturamento, clientes e usuários.

Se essa é sua realidade, chegou a hora de crescer.

O que trouxe sua aplicação até aqui, não é o mesmo que levara-la até o próximo nível.

Chegou a hora de dar o próximo passo para o crescimento.

Há vários bons motivos para usar RabbitMQ

escolha qualquer um e leva os demais de brinde!

2

Mensagens por minuto

1 Mi

Mensagens por segundo

Grandes

Projetos

Pequenos

Projetos

shield

Tolere indisponibilidade de minutos,  dias ou até meses sem causar indisponibilidade em outros serviços.

Um bug no lugar "certo" pode causar enorme prejuízo. Seja tolerante aos mais variados tipos de falhas, garanta que mesmo que seus serviços caiam, as mensagens serão processadas mais tarde.

No seja refém do hardware, ele falha.

Se sua demanda é aumentar a capacidade de processamento de sua aplicação, RabbitMQ te ajuda nessa tarefa permitindo que milhares de clientes se conectem a ele para publicar ou consumir mensagens. Sem necessidade de service discovery.

Atenda mais requisições sem precisar de mais infraestrutura.


Aproveite o poder computacional que você já contratou para processar mensagens o tempo todo!

Suavize a pressão de grandes cargas de trabalho repentinas em tarefas que se acumulam nas filas e são processadas na medida e na capacidade que você quiser, inclusive com o hardware contratado que você já tem.

Aproveite a ociosidade e os momentos de baixa pressão para fazer de fato seus sistemas trabalharem por você.

Por que devo participar?

Por décadas nos ensinaram que fazer grandes queries e usar processamento batch era uma prática sadia, comum e até otimizada. Altera-se uma flag, um status, algumas datas, e pronto, o registro está pronto para a próxima etapa de processamento. 

Então, agendada para rodar periodicamente, uma query, muito otimizada varre quase toda a base de dados em busca dos registos que possuam o tal estado mágico.

Esse é a estratégia default no passado.

Mas não é, nem de longe, uma estratégia eficiente, sequer inteligente. Quanto maior o dataset, maior é a degradação de performance ao longo do tempo

Ao mesmo passo que exaltamos e achamos incríveis os serviços que nunca param, nossos sistemas sofrem de narcolepsia, parando e dormindo a cada 5 minutos para esperar A GRANDE QUERY, ser processada. 

Essa forma de trabalhar é ineficiente no mundo do big data, é ineficiente no mundo das milhares de transações por minuto.  Esse formato exige muito mais infraestrutura do que deveria, e dá para fazer muito mais, gastando muito menos.

Pensar que possa ser mais eficiente processar cada mensagem individualmente é disruptivo.

Fazer uma esteira de processamento contínuo, sem a necessidade de batch, otimiza e reduz o consumo ao seu banco de dados.

Esse é um dos segredos para aumentar a escala de processamento, mantendo ou até reduzindo sua infra.

Reduzir acoplamento é algo que falamos muito no dia-a-dia do desenvolvimento, mas aqui extrapolamos essa ideia ao limite, mostrando como o processamento assíncrono, garante a resiliência do seu workflow, mesmo que contenha operações síncronas.

Como você entrega uma aplicação com ~99% de disponibilidade?

Qual a importância do acoplamento

Será que precisamos dessa preocupação em todos os serviços? 

O que priorizar na hora de entregar disponibilidade?

Quais são os grandes vilões e quais são os ofensores para alcançarmos o objetivo de alta disponibilidade?

Quais os passos para conseguirmos esse objetivo, sem gastar dinheiro desnecessário, com o praticamente o mesmo código, com a mesma equipe, sem precisar contratar devs unicórnios, sem precisar gastar uma fortuna em reengenharia?

Como fazer com que seja possível realizar todos os deployments durante o expediente? No horário comercial, independentemente do tamanho do seu workload, ou estar em plena black friday ou não?

A simplicidade é o mais alto grau de sofisticação

A simplicidade do RabbitMQ desafia nossa capacidade cognitiva. Você não precisa de meses para aprender RabbitMQ. 

São apenas Exchanges e Filas, associadas por um Bind que que liga esses dois elementos.

Mas não se engane, essa simplicidade traduz na falsa sensação de familiaridade.

Nos detalhes moram os equívocos que drenam o sucesso da sua implantação.

O que acontece com quem estuda RabbitMQ por tutoriais?

  • Implementa mecanismos de resiliência com Polly sem necessidade, para resolver problemas que são sanados de forma mais eficiente pelo RabbitMQ.
  • Fica inseguro a respeito das mensagens nas filas e persiste mensagens no banco em momentos errados.
  • Usa parte da API de polling com BasicGet, que segundo a documentação do RabbitMQ é muito ineficiente e seu uso é altamente desencorajado.
  • Implementa controles desnecessários e dá voltas para fazer aquilo que já é comportamento default, nativo
  • Se vê perdido cheio de "imprevistos" que na verdade são previsíveis.

Essas implementações viram frankensteins! E se voltam contra você. Por fim falta força e tempo para refazer tudo, e pior. Sua energia já acabou.

Mensageria é um pilar na comunicação em arquiteturas distribuídas

incluindo Microsserviços

O eShopOnContainers é uma referência sobre microsserviços na plataforma .NET.

Você consegue entender com clareza esse projeto?

O eShopOnContainers usa uma arquitetura de microsserviços e por sua vez a maior parte da comunicação entre serviços é feita com em eventos e mensagens assíncronas. 

É disruptivo, mas mostra na essência toda a eficiência desse desenho arquitetural. Mas é complexo e disruptivo.

Quem está usando RabbitMQ*

Essas empresas usam RabbitMQ em seus projetos

* Dados fornecidos pela StackShare API e AMQP.org

* Cases confirmados em 2015, 2019 e 2021

Após

  • 8 anos de experiência com RabbitMQ
  • 2 grandes restruturações pautadas no uso de RabbitMQ
  • Mais de 30 projetos com RabbitMQ
  • Dezenas de pedidos para criação de um curso
  • Centenas de profissionais ajudados
  • Mais de 10 palestras

Eu empacotei meu conhecimento em um curso.

SOBRE O CURSO

RabbitMQ para Aplicações .NET

Uma forma fácil, em um passo-a-passo, repleto de alertas e avisos para que você não escorregue em cascas de banana.

O passo-a-passo para uma implementação de sucesso. Com as regras que eu sigo, com as recomendações que eu dou para meus times e com as constraints/restrições que garantem o uso de toda capacidade do RabbitMQ para simplificar o desenvolvimento.

rocket

Tenha a oportunidade de conhecer uma forma segura e resiliente para publicar até 300 vezes mais mensagens.

Não são 300%, são 300 vezes, ou seja 30'000%.

Vou mostrar como eu criei minhas abstrações e o que você pode fazer na sua empresa.

Fique apto a liderar restruturações que entregam resiliência, escalabilidade e conduza com as premissas certas sem correr grandes riscos.

A escolha do RabbitMQ se dá pela oportundiade de uso desde cenários de pequeno porte até cenários com grandes cargas de trabalho

Nos projetos pequenos e médios você ganha em resiliência, eficiência de custos e reduz escopo de desenvolvimento. 

Já nos projetos maiores, temos além de resiliência e eficiência, temos cargas de trabalho grandes que facilmente são coordenadas com mensageria.

O curso é sobre atender qualquer um dos dois cenários e extrair o máximo de proveito do RabbitMQ para que nossas aplicações .NET sejam cada vez mais enxutas e eficientes.

Saiba identificar quando uma library te ajuda e quando ela atrapalha. Escolha as formas de trabalho que te geram os benefícios que você precisa: 

  • Agnosticidade/ Independência
  • Resiliência
  • Eficiência
  • Eficácia

Instrutor

Fique ligado para a programação completa deste ano, que está chegando em breve. 

Luiz Carlos Faria

🔥 gaGO.io | 🐳 Docker Definitivo | 🎖 Microsoft MVP | 👥MTAC | 💼Software & Solution Architecture

Começar minha carreira na Petrobrás me possibilitou entender quais são as preocupações de projetos grandes e diferenciar, CRUD's de sistemas realmente complexos. 

Meu primeiro contato com o RabbitMQ não foi assistido, amparado por alguém que já usasse anteriormente. Nada disso: Eu tive de tomar a decisão com base nos meus estudos. Tínhamos um problema com o processo de importação de mídias (músicas, vídeos etc).

Ele dependia de um programador que abria o visual studio, alterava algumas strings e executava o projeto com o debugger ativo. Eu não precisava somente de escalabilidade, eu precisava também de automação, controle de processamento e eficácia para lidar com um fluxo bem extenso e eficiência para evitar erros de uma das primeiras decisões que tomava na empresa. 

Encontrar uma ferramenta para auxiliar na escala do processo de importação foi uma tarefa que me tomou pelo menos 3 semanas.

Nessas 3 semanas eu me dediquei quase que exclusivamente a essa escolha, antes disso eu havia feito pequenas investidas para entender quais eram as possibilidades.

A primeira vez que tentei entender o RabbitMQ não foi amor à primeira vista. Eu ainda estava imbuído do ranço e do rancor pela ineficiência do MSMQ e ingenuamente acreditei que pudesse ser mais do mesmo. No entanto, o fato da SpringSource estar por trás do RabbitMQ me chamou a atenção positivamente.

Ao olhar quem estava usando a solução no mercado, eu entendi que estava diante de algo imponente, e não poderia descartar sem antes estar muito certo da minha decisão.

Na reta final o RabbitMQ ficou entre os finalistas, e para decidir entre eles eu fui obrigado a entender de fato o que o RabbitMQ faz e como faz.

Entre os novos conceitos, o mais disruptivo e com certeza o que me conquistou foi a presença das Exchanges e o acknowledgement, ou simplesmente Ack: Uma feature tão simples quanto poderosa, capaz de suprimir meses de desenvolvimento.

A cereja do bolo, para consolidar a decisão era o standard AMQP, que era parte de um consórcio com os principais players do mercado de “filas”, incluindo Microsoft, Red Hat, VMWare, WSO2 e muitos outros.

Desde então eu fiz inúmeras implantações, de diversos tamanhos e para diversas finalidades.

E também passei a falar sobre RabbitMQ para a comunidade .NET.

Onde estou?

90+

alunos

419

pessoas diretamente ajudadas no grupo do telegram

38k

pessoas ajudadas com conteúdo publicado no youtube

100k+

desenvolvedores ajudados com publicações no gaGO.io

cases e opinião de alunos

Conquistas e Feedback de Alunos

Case de Alunos

Na Leo Madeiras eles resolveram um problema com um processamento remoto de longa duração usando RabbitMQ.

Performance não era o problema, mas resiliência, tolerância a falhas e controle de processamento eram os principais recursos que ajudaram o projeto a ser um sucesso.

“Um curso que ensina além do Rabbit, conhecimentos de arquitetura, solução e C#/.NET. Parabéns ao Luiz pela excelência na entrega de conhecimento.” 

Lucas Scheid

“Cara, foi bem completo os passos como são apresentados os pontos e mão na massa, o que faz, com que possamos ver acontecendo com seus erros e acertos e mudança de cenário.” 

Eduardo Moreira

“Sou iniciante em RabbitMQ, comecei o curso absolutamente do zero e preciso estudar o material produzido e analisar tudo que feito. Mas foi muito proveitoso o curso, pois me deu uma visão geral como esperava.” 

Andre Carlos

O que espera você?

Conteúdo Gravado

Módulos gravados. Acesso a repositório de código-fonte, lives periódicas, comunidade técnica exclusiva.

Módulos, Conteúdo e Grade

Temas

  • Fundamentos de Mensageria
  • Comportamento padrão das filas

✅ Entregue e disponível na plataforma

2 aulas

Aqui você vai dar os primeiros passos para sanar e resolver as primeiras confusões a respeito de mensageria. Você vai ver quais são os principais problemas, e ver forma de estudo e tudo que precisa para entender para evitar problemas na hora de colocar a mão na massa. É o momento você verá os principais problemas dos tutoriais e a superficialidade do material na internet.


Temas

  • Disponibilidade
  • Performance
  • Eficiência
  • Resiliência
  • Confiabilidade
  • Escalabilidade

✅ Entregue e disponível na plataforma

6 aulas

Aqui você entenderá a mecânica por trás de como obter cada benefício. Para que possa adicionar à sua bagagem argumentos e estratégias que ajudem seus projetos, times e empresas, hoje e sempre.


Temas

  • Connection
  • Model/Channel
  • Exchanges
  • Queues
  • Bind
    • Exchange to Queue
    • Exchange to Exchange

✅ Entregue e disponível na plataforma

4 aulas

Aqui você vai entender para que serve cada um dos principais elementos que usamos no dia-a-dia com RabbitMQ. Vai descobrir quais são as responsabilidades de cada um deles e ver como essas responsabilidades são deturpadas nas abstrações, principalmente aqui no .NET.  Vai ver como elementos fundamentais são ignorados e como isso produz falhas. Vemos também a importância de usar corretamente esses recursos, não reinventando rodas. É importante saber o que cada elemento entrega, para que entrega, porque entrega.


Temas

  • Instalação
  • Configuração
  • Banco de Dados
  • Overview
  • Connections
  • Channels
  • Exchanges
  • Queues
  • Admin 
    • Usuários
    • Políticas
    • Virtual Host

✅ Entregue e disponível na plataforma

2 módulos, 6 aulas

A interface web é um dos melhores lugares para explorarmos e fazer um passo-a-passo navegando por toda a interface, mostrando as cargas de trabalho em execução trazem maior lucidez ao entendimento. Nesse cenário eu mostro um servidor novo, vazio, de testes, mas também um servidor de produção, com uma estrutura de projeto montada já.


Temas

  • Entendendo RabbitMQ.Client
  • A anatomia de um Consumer
  • A anatomia de um Publisher
  • Demonstração
  • Código Fonte
  • Gerenciando recursos AMQP
  • Roteamento AMQP com exchanges e queues
  • Padrões de mensagens

✅ Entregue e disponível na plataforma

3 aulas

Nosso objetivo nesse módulo é percorrer os detalhes, mostrar o que a documentação deixa escapar. Mostrar como fizeram a implementação do nosso client e mostrar como cada flag, cada parâmetro influencia nas nossas aplicações, usando agora, as primeiras demonstrações de código.


Temas

  • As mudanças na app de demonstração de comportamento de filas
  • Video de Resiliência (igual ao do youtube)
  • Publish e Publish Confirms
  • Consumidor
  • Coletor de Métricas
  • Docker Compose
  • Executando a aplicação
  • Recap e Hilights
  • Detalhes da Aplicação de Referência
  • Exchanges Duráveis, Filas Duráveis e Mensagens Persistentes

✅ Entregue e disponível na plataforma

10 aulas


Resiliência é um assunto fundamental. É um dos assuntos que abrange desde aplicações bem pequenas até aplicações grandes. Assim dediquei um módulo a mostrar cada um desses elementos que trazem resiliência para sua aplicação.

Temas

  • Trabalhando com consumo Sync e Async
  • Overview RPC
  • RPC Publisher
  • Coreografia
  • RPC Consumer
  • Detalhes da BasicProperties
  • Clean Code e Clean Architecture - Eliminando o acoplamento
  • Demonstração de adição de novas funcionalidades (exemplo de MOD na Calculadora RPC)
  • Criando um transparent proxy
  • Abstraindo totalmente o RabbitMQ.

✅ Entregue e disponível na plataforma

10 Aulas

RPC é um excelente campo de demonstração do uso avançado do RabbitMQ, onde conseguimos demonstrar a função de detalhes como MessageId, CorrelationId, ReplyTo, todos campos da mensagem muitas vezes ignorados. Ao mesmo tempo vemos a criação de filas anônimas em um fluxo síncrono sob um fluxo assíncrono. Ao mesmo tempo temos a oportunidade de trabalhar com mensagens não duráveis e exchanges e filas não duráveis.


Temas

  • Reduzindo acesso a banco
  • Reduzindo demandas de escrita em banco
  • Paralelizando e aumentando capacidade de escritas em banco
  • Diluindo grandes cargas de trabalho
  • Reduzindo acoplamento
  • Eventos vs Comandos
  • Otimização para processos de longa duração

✅ Entregue e disponível na plataforma

Agora que conhecemos o RabbitMQ e os detalhes de cada elemento, estamos prontos para percorrer as diversas possibilidades e usos práticos, compostos desses elementos. Como um lego, onde poucos tipos de peças produzem os mais variados desenhos, RabbitMQ oferece o mesmo com suas filas e exchanges, possibilitando retry, delay, split, e muito mais.


Temas

  • iMusica (Claro Música)
  • Lider Seguradora (Segudo DPVAT)
  • WBOT (Plataforma de Bots)

📆 Em produção

Nesses 3 cases reais eu vou mostrar minha experiência e você vai poder extrair bons exemplos de uso em cenários completamente adversos. Vou mostrar porque eu escolhi RabbitMQ, e porque essas escolhas fizeram tanto sentido e tiveram tanto sucesso nesses 2 cases.


Temas

  • Event Driven Architect
  • Event Bus
  • Microservices

📆 Em produção

Nesse módulo vou abordar Event Driven Architecture no contexto de Microsserviços para demonstrar como conectar os pontos e como RabbitMQ pode ser seu aliado para simplificar a complexidade desse cenário.


Demo / Projeto final

  • Criação de Contas
  • Depósitos e Saques
  • Consultas
  • Transações ( CQRS ) 
  • Carteira
  • Taxas
  • Transferência

📆 Em produção

Aqui temos uma aplicação de exemplo onde você vai ver na prática os principais cases, de uso em arquiterura de microsserviço, usando mensageria, RabbitMQ, explorando ao máximo o potencial da solução para entregar simplificadade em um cenário que por natureza já é complexo. Você vai ver como usar o RabbitMQ para te ajudar nesse desafio..

Temas

  • Diferença entre stream e fila
  • Usando provider AMQP para publicar e consumir streams
  • Declarando streams programaticamente
  • Políticas de retenção e descarte
  • Demo

📆 Agendado

Passo-a-passo, os cuidados com o update do meu stack de produção. Estratégia de solução, refatoração e adição de funcionalidades no hub.

📆 Agendado

Muito além de conteúdo

Você pode se sentir inseguro a respeito de uma tecnologia, principalmente dando os primeiros passos. Não basta conteúdo, é importante ter um lugar para pedir ajuda. E é para isso que temos um acesso mínimo de 3 anos, temos acompanhamento no grupo privado do telegram, e temos um ORG no GitHub com bastante código e exemplos dos mais variados.


Acesso vitalício à comunidade construída ao redor do curso, com os alunos. Nela você pode tirar suas dúvidas com outros alunos e comigo. 


Você tem tempo de sobra para estudar, assistir quantas vezes quiser.

Não existe renovação, e também não existe recompra. A ideia é que o acesso NUNCA SEJA INTERROMPIDO. Mas caso alguma coisa muito esquisita aconteça, eu me resguardo o direito de manter o acesso por 3 anos.


GitHub icon

No github temos uma organização secreta que possui diversos repositórios.

  • Hub.gago.io
  • RabbitMQ Professional Consumer
  • Hosting
    • RabbitMQ no Docker Compose com Plugins
    • MQTT
    • STOMP
    • Shovel
  • PubSub (3 repositórios)
  • Step-by-step
  • Demos variadas
  • Youtube Downloader

1 live por mês

Uma vez por mês, nos reunimos em uma live privada, no ZOOM para entender quais estão sendo as dificuldades, entender como está sendo a progressão no curso, entender os cases de sucesso, as dificuldades e desafios e propor melhorias para as suas implementações com RabbitMQ.


Carreira, Containers e muito mais

Muitos buscam estar preparados para o futuro, para novos desafios. Alguns visam furar a bola dos projetos ruins e empresas ruins. 

Para isso eu adicionei ao pacote alguns conteúdos que sozinhos valem tanto quanto o próprio curso.

A intenção é entregar cursos rápidos que ajudem na construção de profissionais melhores.

Bonus exclusivos para pagamento com PIX

O pagamento via PIX é realizado direto na plataforma (KIWIFY) plataforma que hospeda o curso.

RabbitMQ para Aplicações .NET

Tudo isso por

12 x R$
150.3
à vista R$
1497

para quem é

Requisitos mínimos

O aluno deve ser um desenvolvedor, líder técnico ou arquiteto, pleno ou sênior e que tenha fluência com .NET Core e C#.

Computador/Notebook com pelo menos 4GB de RAM e que tenha Docker Desktop instalado. 

EXPERIMENTE POR

21 DIAS


 Se não gostar devolvemos trodo o seu dinheiro!

Eu confio tanto no processo que eu te dou uma garantia condicional de

90 DIAS

ou o dobro


Se em 90 dias você não aprender a trabalhar com RabbitMQ e não conseguir projetar uma aplicação .NET com mensageria, usando RabbitMQ, você pode acionar a garantia condicional. Com ela você vai apresentar o teu material de estudo (resumo, demos etc) e eu vou te dar uma mentoria. Se em 30 dias você ainda não conseguir você recebe R$ 1990.

Regulamento

Aulas

1) Você precisa ter assistido todas as aulas do curso.

2) Você precisa ter feito um resumo de cada aula.

3) Você precisa ter feito demonstrações que comprovem o uso dos recursos apresentados em cada aula. 

Um mesmo exemplo pode conter o assunto de diversas aulas.

Apresentação

4) Encaminhe o resumo, e o/s projetos de demonstração que você fez. Nós vamos usar esse material para, em uma mentoria de 2 horas, sanar todas as suas dúvidas.

Na primeira parte da mentoria você vai  aprensentar o que fez pra mim.

Na segunda parte eu te ajudo a entender o que falta.

O dobro ou nada

Você terá tempo para digerir nossa conversa, então se em 30 dias após a nossa mentoria você ainda não conseguir desenvolver um projeto do zero com Mensageria, eu te devolvo 2 vezes o valor do curso ou seja, para entrar você paga R$ 995, se você não aprender, você recebe R$ 1990 para pagar uma parte do tempo que você investiu aqui.

Faça parte da transformação da sua empresa!