I can say that on today's hardware, achieving 3-7M msgs/sec in a single-stream, guaranteed, in-order messaging is possible. This us also with 120 byte messages, which amounts to about 3-7Gbps if sustained messaging in clusters of 2 to 200+ machines. What do you need to achieve this?
* Kernel bypass network architecture e.g. Solarflare 10/40gbe
* 10gbe switches
* decoupling of transport layer into a dedicated processor cores
* busy-polling processes
* business logic placed on dedicated cores.
* use of shared memory and/or memory mapping to transport messaging between processes.
It all sounds fairly convoluted to throw up processes and burn a core on rx/tx, but if you need to process millions of messages a second at fairly low latency, this is about the limit of where it goes. Using traditional application and socket tied to a single process will get you to around 1 million messages/sec with some very large buffers and efficient business logic, but thst eill be about it. The next step would be to start sharding streams, but that comes with its own complexities.