I need to consume a JSON-formatted data stream via WebSocket, and send the data as is to a Redis server. That's all this application needs to do; no UI, no requests need to be attended and the data doesn't need to be processed at all.
I want to get the smallest footprint and highest performance. Do you think Node.js/V8 would handle this scenario better than the Java/JVM? I'm between these 2 options because are the ones I can manage, although my main skill is Java.
It all depends on the environment that you're installing the application on, and how much experience you have with each.
Nodes event-loop based model is very efficient, however I have found Java to perform better for CPU intensive tasks. I don't consider myself to be an expert on either (approx 10 months Node.js, 3 years part-time Java experience) so don't take my answer as gospel.
In your case you're only really performing I/O which is where Node.js excells, if you're good with JavaScript pick Node!
Node.js and socket.io is easy to setup and deploy in this case. Way easy to deploy. You will be ~20-30mb ram on memory usage problem with metrix on performance here is hard because its hard to benchmark websockets. If its gone not be deployed on heroku then i would go for node.js
You can use node.js + socket.io
or node.js / ruby + faye.
With traffic generating < 8k requests / sec it should be fine on both of them with very basic VPS / hardware setup.
I used faye on ruby with 1.1k clients chat over web sockets with 0 problems. And we had peak 4k clients on node.js chat. Very basic hardware.
I would suggest Node.js
if you have enough experience with it.