Isso aí tem vários usos, desde o CoralQueue (same JVM) para implementar logs assíncronos (critical thread => queue => file i/o thread) desde para vários clientes numa mesma máquina recebendo multicast via shared memory (CoralRing).
Esse último funciona assim:
- Ao invés de ter 20 clientes recebendo multicast na mesma máquina
- E ter todos os 20 clientes pendurados na placa de rede
- Criando 20 underlying/native receive socket buffers
- Comprometendo o kernel bypass (onload)
- Emitindo um caminhão de syscalls para o OS
- Então vc coloca apenas um cliente multicast que vai funcionar como um dispatcher
- Esse dispatcher se torna o único multicast listener na máquina
- Ou seja, o único cliente multicast pendurado na placa de rede, com kernel bypass
- Então o dispatcher escreve todas as mensagem que ele recebe em uma única e central shared memory
- E todos os 20 clientes lêem as mensagem dessa única e central shared memory
Importante notar que a shared memory é única, ou seja, que o dispatcher vai escrever cada mensagem uma única vez, mesmo que haja 20 clientes interessados. Daí os clientes podem ler as mensagens, in a non-blocking way, dessa shared memory única e central ao invés de ter que se pendurar na placa de rede.
Tem um diagrama explicando melhor isso aqui => Shared Memory Transport x Multicast Transport