Skip to content

AWSBatch Interface #4

@mattBrzezinski

Description

@mattBrzezinski

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions