I've just jumped into a new project that combines many components written in different languages (Python, Ruby, Java & Perl). The project is kind of a pipeline that process documents and can be run as a command line shell script. The pipeline/shell script passes contents from tool to the other then finally print an output into a file. During the process some tools do print files then these files are used as an input into other tools.
My job in this project is to bring it to the web. So my question is what is the proper/best practices way/architecture that should be followed in such a project where you have many components writing in different languages?
And is Node.js the best tool/language that can combine components as LinkedIn says: "If you look at Node, the thing it’s best at doing is talking to other services."
I think the proper answer could fill books...
That said, I would suggest to avoid the unholy mess of tiny modules talking to who knows who, by implementing some kind of service bus. If you can get that right, all the languages/subprojects will have to be compatible with the bus only, not with each and every one of the others. That way the complexity will drop from N factorial to 2xN.
The one thing you should be most wary about is security. If you are exposing some scripts to be executable through the web especially if it requires user input, you want to validate it thoroughly.
This is probably the single most important thing. The choice of frameworks or architecture would be secondary to security.