JobFlows::EmrBase (and subclasses) uses rslifka/elasticity gem under the hood.
Pros
History. Already finished jobs stored in Postgres. It provides info about initial arguments, final statuses, created artifacts (URL of created files etc.).
Cons
New ActiveRecord class pollutes oma-models with information about processor implementation details. In particular oma-models depends on rslifka/elasticity gem
Callbacks (on job flow success or failure) are implemented as methods of an AR class. Thus there is no advantages of closures.
S3 based implementation (rejected)
Create a ruby class (module?) represented a single job flow instance. Use Amazon S3 as a persistence layer. Save a list of actual job flows (not finished) as a file on S3 (CSV?). Create a ruby class for each particular job flow kind.