As tecnologias Spring Cloud Stream e Spring Cloud Function dão suporte à implementação de microservices orientados a eventos para diversos casos de uso, desde a integração de aplicativos até o fluxo de dados. Oleg Zhurakousky, líder do projeto Spring Cloud Stream e Spring Cloud Function, palestrou na Conferência SpringOne Platform 2019 sobre os desenvolvimentos e os novos recursos de ambos os projetos.
Zhurakousky iniciou a apresentação definindo o que é uma arquitetura orientada a eventos, que, de acordo com a sua definição, é "um paradigma de arquitetura de software que promove a produção, detecção, consumo e reação a eventos". Diferentemente dos dados tradicionais, os eventos não se movem, eles ocorrem. Os eventos contam com sistemas baseados em rede para se comunicar.
Zhurakousky disse que os eventos devem conter informações suficientes para que o programa do consumidor atue no evento gerado. Eventos geralmente consistem em:
- Payload do evento;
- Metadados do evento (que incluem hora, ID, fonte, tipo etc.).
As reações aos eventos podem ser de diferentes tipos: processo, processo / encaminhamento e delegação. O palestrante também comentou sobre os diferentes tipos de processamento de eventos, que incluem:
- Processamento simples de eventos;
- Processamento de eventos de streaming;
- Processamento de eventos complexos.
Mostrou ao público várias demonstrações de como usar o Spring Cloud Stream e a API do Spring Cloud Function para o desenvolvimento de soluções orientadas a eventos. Uma das demos incluiu uma solução reativa usando o Project Reactor com o RabbitMQ para acumular um grupo de eventos e analisá-los. Afirmou que "só precisamos adicionar o Spring Cloud Stream ao classpath e pronto, tudo está funcionando. Basicamente, a função se torna um manipulador de mensagens".
Zhurakousky também falou na conferência sobre o Spring Cloud Function: Escreva uma vez, execute em qualquer lugar e o Streaming com o Spring Cloud Stream e Apache Kafka (ambos os conteúdos estão em inglês).