O Spring Cloud Stream é um framework de alto nível de abstração projetado para construir microsserviços escaláveis e orientados a eventos. Seu principal objetivo é desacoplar a lógica de negócio da infraestrutura de mensageria subjacente. Ele permite que os desenvolvedores se concentrem na lógica de processamento de dados sem se preocupar com o código repetitivo(boilerplate) necessário para se conectar a message brokers como RabbitMQ ou Apache Kafka. O framework fornece uma configuração opinativa para conceitos de mensageria persistente, como semântica de publicação-assinatura, grupos de consumidores e particionamento, essenciais para sistemas distribuídos robustos.
O Spring Cloud Function representa o modelo de programação moderno e recomendado para o Spring Cloud Stream. A ideia central é que qualquer bean do Spring que implemente as interfaces funcionais padrão do Java java.util.function.Supplier, java.util.function.Function, ou java.util.function.Consumer — pode ser automaticamente tratado como uma fonte de mensagens, um processador ou um consumidor (sink), respectivamente.
Para tornar os exemplos práticos e relacionáveis, todo o treinamento será baseado em um domínio de processos administrativos. O objeto central será um POJO (Plain Old Java Object) chamado Processo. Este objeto representará a submissão de um processo administrativo e conterá campos como um id do tipo UUID, um tipoProcesso e detalhes do tipo String.
-
O Consumidor Funcional: Recebendo um
Processo(Conversão Automática de JSON para POJO com Jackson - o mesmo do Spring Web) -
Produtor Imperativo: Enviando com
StreamBridge -
Teste de ponta a ponta
-
O Processador: Transformando um
Processoem umaNotificacao -
Escalando com Grupos de Consumidores
-
O Problema da Pílula de Veneno (ou batata quente)
-
Implementando Mecanismos de Re-tentativa Sofisticados