Details
-
New Feature
-
Status: Open
-
Major
-
Resolution: Unresolved
-
None
-
None
-
None
Description
High Level Goal:
- Submit an application
- Track its progress. Have the client be notified by the Driver in case of messages or failure.
- Communicate with the driver
- Perform management tasks on the application
- Killing
- Cancelling
- Updating binaries/configuration etc.
- Application debugging primitives
Key considerations:
- Stable API with long term support and extensibility
- API expressive enough to support multiple use cases:
- Interactive one-off jobs
- Automated job/pipeline orchestration services
- Long running services.
- Runtime agnostic
- Implementation of API will be hosted in-proc with user's client using it; This is not intended to be a remote API.
- Allow the client to have simple implementation to manage fail-over for instance reconnecting to the application and proceeding normally.
- Allow for implementation of rich, responsive user interaction with REEF managed application.
- Provide a very lean Onboarding experience; Remain feature rich for complex use case. ( Judicious defaults and helpers )
- Keep API aligned with existing REEF design principles, for instance, event driven programming model.
- Keep API aligned with patterns used in .NET BCL APIs