Primeiramente, massa demais a solução cara.

Como Juninho, fiquei com um pensamento aqui, além da escalabilidade, qual o motivo de usar streams ao invés de só ler o csv com os dados e depois executar isso com um intervalo entre as requisições pro whatsapp? pergunta honesta haha.

Valeeeu, meu nobre!!

Então, no meu pensamento também de Juninho, com as Streams a gente consegue fazer todo esse processo direto no pipeline, em que todos o middlewares serão apenas extensões do Transform, aí não é preciso separar, saca?