Skip to content

Files

Latest commit

cb9b6ad · Jan 30, 2021

History

History

jworkflow.providers.aws

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
Jan 12, 2019
Jan 27, 2019
Mar 19, 2019
Jan 30, 2021

AWS providers for JWorkflow

  • Provides support to persist long running workflows for JWorkflow backed by Amazon DynamoDB
  • Provides support to run multi-node clusters of JWorkflow, by providing a distributed lock manager (via DynamoDB) and/or a shared work queue (via Simple Queue Service).

Installing

Using Maven

<dependencies>
    <dependency>
        <groupId>net.jworkflow</groupId>
        <artifactId>jworkflow.providers.aws</artifactId>
        <version>>0.5-SNAPSHOT</version>
    </dependency>
</dependencies>

Using Gradle

dependencies { 
    compile 'net.jworkflow:jworkflow.providers.aws:>0.5-SNAPSHOT'
}

Usage for Persistence

import software.amazon.awssdk.regions.Region;
import net.jworkflow.providers.aws.DynamoDBPersistenceProvider;
...
...

WorkflowModule module = new WorkflowModule();

module.usePersistence(new DynamoDBPersistenceProvider(Region.US_WEST_1, "table-prefix"));

module.build();
WorkflowHost host = module.getHost();

Usage for Shared Work Queue

import software.amazon.awssdk.regions.Region;
import net.jworkflow.providers.aws.SQSProvider;
...
...

WorkflowModule module = new WorkflowModule();

module.useQueue(new SQSProvider(Region.US_WEST_1));

module.build();
WorkflowHost host = module.getHost();

Usage for Distributed Lock Manager

import software.amazon.awssdk.regions.Region;
import net.jworkflow.providers.aws.DynamoDBLockProvider;
...
...

WorkflowModule module = new WorkflowModule();

module.useDistibutedLock(new DynamoDBLockProvider(Region.US_WEST_1, "jworkflowLockTable")); //DynamoDB table name of your choice

module.build();
WorkflowHost host = module.getHost();