As a developer, I'd like to be able to run a boot jar as a task on CF and obtain the result reliably.
Currently Lattice/Diego's tasks implementation provides the ability to run things as short lived tasks. However, obtaining the result of said task can be an issue. There are two ways to do so:
- Poll for the result.
- Register a callback URL to be called once the task completes.
Since a task is only available for a short time after its completion before it is deleted, polling can run the risk of missing the result completely. When you consider the fact that the provided GUIDs that identify tasks can be re-used polling becomes a precarious option.
Registering a callback URL would be a better option, however there are no good guarantees that the message will be delivered. The service will try to execute the callback until it's successful or the task is cleaned up. "Successful" is defined in this case as anything other than a 502 or a 503 return code.
In order for Spring XD to be able to support Diego tasks, a more durable option for maintaining the result of tasks will need to be developed.
Note: The outcome of this spike may be feature requests for the CF/Diego team.