I am working on a java server, which has a bunch of seemingly distinct "services". A lot of which are just effectively classes. From a software architecture point of view I wonder what the opinion is on such a setup. Is there any advantage to be gained by splitting the related services off into their own server? Or is the pain involved in maintaining multiple processes not worth it. I realize the answer very well might be that "it depends". However I was hoping to maybe establish some general guidelines/principles.