Logstash forwarder, logstash, nxlog, redis, which one to use?

I'd say it doesn't matter that much. Having a buffer in between means that messages can be shipped off of the leaf machine as quickly as possible, but you also get a more complicated setup. The main advantage of having a buffer is really if you have inputs that don't back off in a good way but that's not the case for you.