How to cluster an application
<p>I am sorry if the following question has already been answered or if it is simply not specific enough yet I am entirely new to the topic of clustered applications and I am looking for a starting point right now.</p>

<p>My goal is to write a software which will perform a variety of different tasks, primarily starting other software on remote servers. This software needs to calculate how many instance of these other softwares are currently required and will then have to somehow tell the remote server to launch new instances.</p>

<p>The software which is requesting new instance must not be unavailable or crash, though, which is why I am looking to distribute it onto multiple servers and then coordinate these instances to work simultaneously and take over if any instance crashes so that the system as a whole is somewhat resilient.</p>

<p>The application itself should either be reachable via a REST API or via a TCP connection, whereas I would prefer the former one. If you know any framework which might help me with this I would be pleased if you could let me know.</p>

<p>Best regards</p>

<p>PS.: I have seen that Spring provides some support for distributed system but I am unsure if that would really help me with my task.</p>