Service Pool pattern.
it's idea in my mind since a while.
there are various sources, including Apache River & other.
we can have a naming/directory service that when asked for an utility service with interface name, answers with ip addresses, ports & other data describing available services.
we can choose which service suits best our needs, and connect with it.
it's also an idea in my mind since a while, it's realized in a Stitie Grid article, for example.
we have a worker service with a worker interface ... that accepts .class file(s) & object(s) then executes the code at worker machine without restarting computer or application.
after finishing it's work, worker machine(s) can send results to Leader machine.
during their work, worker machine(s) can communicate with other services including Leader machine.
worker can also be leader, by having sub-workers.
Worker Service Pool Grid pattern.
it's a combination of two above patterns,
we have a worker pool with addresses, we contact naming/directory service with interface name & get details on how to contact worker service(s),
we connect & send the code forming a grid,
execute code at worker machines.
when work is done, we release worker machines from service.
it's also called: 'Dynamic Grid Construction & Release'.
i can imagine that 'Dynamic Grid Construction & Release' has uses in a Cloud Services.
Grid as an Object Graph.
Grid can be seen as an Object Graph, each computer being an object with methods (available via ports at ip address) & state (data in computer memory).
Objects can communicate, talk with each other, do it's common task.
Object Graph can be seen as a model of a Program, can be run.
Reserve Components & Tiering.
in case of a component(s) failure(s), other reserve component(s) can be used.
component here is a Computer System plus application software that runs on it.
best if reserve components are a part of the Design, possibly Clusters.
but also they can be dynamically created, their Client can contact Leader in case of a non-answering Server for a new ip address & port of a reserve component - stateless application design allows for that, state can be transferred as well.
there's also a possibility of functionality tiering.
details: Conditional Software Tiering.
i think that way computing power can be leased for a time at a given price,
it's convenient that way in my opinion.