-
Notifications
You must be signed in to change notification settings - Fork 2
Description
Currently the AWSBatch interface is somewhere in between a high-level Julia interface and a low-level AWS API interface. We should do some iterating on this design to find something that that allows us to easily update with AWS API changes and new features while keeping things easy to use on the Julia side. Eventually we want the high-level Julia interface to look something like:
job = @batch memory=2048 begin
using AWSClusterManagers
addprocs(AWSBatchManager(5))
...
end
For inspiration look at AWSLambda.jl which has a @lambda
and @lambda_eval
for executing Julia code on Lambda.
Keeping this in mind I think we should adjust the current AWSBatch in the following way:
Make the BatchJob
only keep track of the job_id. This would result in an interface change something like:
submit(; kwargs...) -> BatchJob
wait(::BatchJob) -> Bool
status(::BatchJob) -> JobState
describe(::BatchJob)
Applying these kind of changes to the job definition and other types would result in:
- The structures no longer needing to be mutable
- Aligning the low-level interface closer to the AWS API