A continuations style concept but designed to operate at cloud scale. So we resume a process, somewhere on the cloud.
While this is written to support Tasks the concept is sufficiently simple and standalone that it can have its own repo.
This library solves some basic problems with distributed computing:
- restarting
- checkpointing (where was the process last time)
- workers (where should this be run on restart)
- retrying
- what to do if there is an exception?
- when to retry (scheduling)
- when to give up (dead letter)
- health
- passive monitoring (e.g. probes)
- built in, active monitoring (e.g. heart beats)
- when to restart (scheduling)
- when to give up (dead letter)
The three core interfaces are Continuation, Continuable and Continuable Worker.
The application logic is implemented as a Continuation
. The ability to start and restart is implemented
by Continuable
. The ability to schedule , check progress and get the result of a Continuation
is implemented by
the ContinuationWorker
interface.
See the docs for details.
todo
As with everything in myCorda dot App, this library has minimal dependencies:
- Kotlin 1.4
- Java 11
- The object Registry
- The Commons module
- The Really Simple Serialisation(rss) module
- Jackson for JSON and YAML serialisation
- Simple Event Store and Simple KV Store if using the inbuilt Simple Continuation