Alternatives to Amazon SWF logo

Alternatives to Amazon SWF

Celery, Airflow, Amazon SQS, AWS Step Functions, and Google Keep are the most popular alternatives and competitors to Amazon SWF.
34
67
+ 1
0

What is Amazon SWF and what are its top alternatives?

Amazon Simple Workflow allows you to structure the various processing steps in an application that runs across one or more machines as a set of “tasks.” Amazon SWF manages dependencies between the tasks, schedules the tasks for execution, and runs any logic that needs to be executed in parallel. The service also stores the tasks, reliably dispatches them to application components, tracks their progress, and keeps their latest state.
Amazon SWF is a tool in the Cloud Task Management category of a tech stack.

Top Alternatives to Amazon SWF

  • Celery

    Celery

    Celery is an asynchronous task queue/job queue based on distributed message passing. It is focused on real-time operation, but supports scheduling as well. ...

  • Airflow

    Airflow

    Use Airflow to author workflows as directed acyclic graphs (DAGs) of tasks. The Airflow scheduler executes your tasks on an array of workers while following the specified dependencies. Rich command lines utilities makes performing complex surgeries on DAGs a snap. The rich user interface makes it easy to visualize pipelines running in production, monitor progress and troubleshoot issues when needed. ...

  • Amazon SQS

    Amazon SQS

    Transmit any volume of data, at any level of throughput, without losing messages or requiring other services to be always available. With SQS, you can offload the administrative burden of operating and scaling a highly available messaging cluster, while paying a low price for only what you use. ...

  • AWS Step Functions

    AWS Step Functions

    AWS Step Functions makes it easy to coordinate the components of distributed applications and microservices using visual workflows. Building applications from individual components that each perform a discrete function lets you scale and change applications quickly. ...

  • Google Keep

    Google Keep

    It is a note-taking service developed by Google. It is available on the web, and has mobile apps for the Android and iOS mobile operating systems. Keep offers a variety of tools for taking notes, including text, lists, images, and audio. ...

  • Workfront

    Workfront

    It allows user to manage projects in one place. It helps marketing, IT, & enterprise teams conquer chaos by improving productivity, collaboration, and visibility. ...

  • Taskworld

    Taskworld

    It is designed to facilitate project and task management, collaboration, delegation, communication, knowledge management, measure progress and provide performance metrics for evidence-based evaluations within teams. ...

Amazon SWF alternatives & related posts

Celery logo

Celery

1.4K
1.3K
265
Distributed task queue
1.4K
1.3K
+ 1
265
PROS OF CELERY
  • 94
    Task queue
  • 61
    Python integration
  • 37
    Django integration
  • 29
    Scheduled Task
  • 18
    Publish/subsribe
  • 6
    Easy to use
  • 6
    Various backend broker
  • 5
    Great community
  • 4
    Workflow
  • 4
    Free
  • 1
    Dynamic
CONS OF CELERY
  • 4
    Sometimes loses tasks
  • 1
    Depends on broker

related Celery posts

James Cunningham
Operations Engineer at Sentry · | 18 upvotes · 1.3M views
Shared insights
on
CeleryCeleryRabbitMQRabbitMQ
at

As Sentry runs throughout the day, there are about 50 different offline tasks that we execute—anything from “process this event, pretty please” to “send all of these cool people some emails.” There are some that we execute once a day and some that execute thousands per second.

Managing this variety requires a reliably high-throughput message-passing technology. We use Celery's RabbitMQ implementation, and we stumbled upon a great feature called Federation that allows us to partition our task queue across any number of RabbitMQ servers and gives us the confidence that, if any single server gets backlogged, others will pitch in and distribute some of the backlogged tasks to their consumers.

#MessageQueue

See more
Pulkit Sapra

Hi! I am creating a scraping system in Django, which involves long running tasks between 1 minute & 1 Day. As I am new to Message Brokers and Task Queues, I need advice on which architecture to use for my system. ( Amazon SQS, RabbitMQ, or Celery). The system should be autoscalable using Kubernetes(K8) based on the number of pending tasks in the queue.

See more
Airflow logo

Airflow

1.2K
2K
115
A platform to programmaticaly author, schedule and monitor data pipelines, by Airbnb
1.2K
2K
+ 1
115
PROS OF AIRFLOW
  • 45
    Features
  • 14
    Task Dependency Management
  • 12
    Beautiful UI
  • 11
    Cluster of workers
  • 10
    Extensibility
  • 5
    Open source
  • 4
    Python
  • 4
    Complex workflows
  • 3
    K
  • 2
    Dashboard
  • 2
    Good api
  • 2
    Custom operators
  • 1
    Apache project
CONS OF AIRFLOW
  • 2
    Open source - provides minimum or no support
  • 1
    Logical separation of DAGs is not straight forward
  • 1
    Running it on kubernetes cluster relatively complex
  • 1
    Observability is not great when the DAGs exceed 250

related Airflow posts

Shared insights
on
JenkinsJenkinsAirflowAirflow

I am looking for an open-source scheduler tool with cross-functional application dependencies. Some of the tasks I am looking to schedule are as follows:

  1. Trigger Matillion ETL loads
  2. Trigger Attunity Replication tasks that have downstream ETL loads
  3. Trigger Golden gate Replication Tasks
  4. Shell scripts, wrappers, file watchers
  5. Event-driven schedules

I have used Airflow in the past, and I know we need to create DAGs for each pipeline. I am not familiar with Jenkins, but I know it works with configuration without much underlying code. I want to evaluate both and appreciate any advise

See more
Shared insights
on
AWS Step FunctionsAWS Step FunctionsAirflowAirflow

I am working on a project that grabs a set of input data from AWS S3, pre-processes and divvies it up, spins up 10K batch containers to process the divvied data in parallel on AWS Batch, post-aggregates the data, and pushes it to S3.

I already have software patterns from other projects for Airflow + Batch but have not dealt with the scaling factors of 10k parallel tasks. Airflow is nice since I can look at which tasks failed and retry a task after debugging. But dealing with that many tasks on one Airflow EC2 instance seems like a barrier. Another option would be to have one task that kicks off the 10k containers and monitors it from there.

I have no experience with AWS Step Functions but have heard it's AWS's Airflow. There looks to be plenty of patterns online for Step Functions + Batch. Do Step Functions seem like a good path to check out for my use case? Do you get the same insights on failing jobs / ability to retry tasks as you do with Airflow?

See more
Amazon SQS logo

Amazon SQS

1.9K
1.6K
166
Fully managed message queuing service
1.9K
1.6K
+ 1
166
PROS OF AMAZON SQS
  • 60
    Easy to use, reliable
  • 39
    Low cost
  • 27
    Simple
  • 13
    Doesn't need to maintain it
  • 8
    It is Serverless
  • 4
    Has a max message size (currently 256K)
  • 3
    Easy to configure with Terraform
  • 3
    Triggers Lambda
  • 3
    Delayed delivery upto 15 mins only
  • 3
    Delayed delivery upto 12 hours
  • 1
    JMS compliant
  • 1
    Support for retry and dead letter queue
  • 1
    D
CONS OF AMAZON SQS
  • 2
    Has a max message size (currently 256K)
  • 2
    Proprietary
  • 2
    Difficult to configure
  • 1
    Has a maximum 15 minutes of delayed messages only

related Amazon SQS posts

Praveen Mooli
Engineering Manager at Taylor and Francis · | 14 upvotes · 2M views

We are in the process of building a modern content platform to deliver our content through various channels. We decided to go with Microservices architecture as we wanted scale. Microservice architecture style is an approach to developing an application as a suite of small independently deployable services built around specific business capabilities. You can gain modularity, extensive parallelism and cost-effective scaling by deploying services across many distributed servers. Microservices modularity facilitates independent updates/deployments, and helps to avoid single point of failure, which can help prevent large-scale outages. We also decided to use Event Driven Architecture pattern which is a popular distributed asynchronous architecture pattern used to produce highly scalable applications. The event-driven architecture is made up of highly decoupled, single-purpose event processing components that asynchronously receive and process events.

To build our #Backend capabilities we decided to use the following: 1. #Microservices - Java with Spring Boot , Node.js with ExpressJS and Python with Flask 2. #Eventsourcingframework - Amazon Kinesis , Amazon Kinesis Firehose , Amazon SNS , Amazon SQS, AWS Lambda 3. #Data - Amazon RDS , Amazon DynamoDB , Amazon S3 , MongoDB Atlas

To build #Webapps we decided to use Angular 2 with RxJS

#Devops - GitHub , Travis CI , Terraform , Docker , Serverless

See more
Tim Specht
‎Co-Founder and CTO at Dubsmash · | 14 upvotes · 621.2K views

In order to accurately measure & track user behaviour on our platform we moved over quickly from the initial solution using Google Analytics to a custom-built one due to resource & pricing concerns we had.

While this does sound complicated, it’s as easy as clients sending JSON blobs of events to Amazon Kinesis from where we use AWS Lambda & Amazon SQS to batch and process incoming events and then ingest them into Google BigQuery. Once events are stored in BigQuery (which usually only takes a second from the time the client sends the data until it’s available), we can use almost-standard-SQL to simply query for data while Google makes sure that, even with terabytes of data being scanned, query times stay in the range of seconds rather than hours. Before ingesting their data into the pipeline, our mobile clients are aggregating events internally and, once a certain threshold is reached or the app is going to the background, sending the events as a JSON blob into the stream.

In the past we had workers running that continuously read from the stream and would validate and post-process the data and then enqueue them for other workers to write them to BigQuery. We went ahead and implemented the Lambda-based approach in such a way that Lambda functions would automatically be triggered for incoming records, pre-aggregate events, and write them back to SQS, from which we then read them, and persist the events to BigQuery. While this approach had a couple of bumps on the road, like re-triggering functions asynchronously to keep up with the stream and proper batch sizes, we finally managed to get it running in a reliable way and are very happy with this solution today.

#ServerlessTaskProcessing #GeneralAnalytics #RealTimeDataProcessing #BigDataAsAService

See more
AWS Step Functions logo

AWS Step Functions

180
307
22
Build Distributed Applications Using Visual Workflows
180
307
+ 1
22
PROS OF AWS STEP FUNCTIONS
  • 5
    Integration with other services
  • 4
    Pricing
  • 4
    Easily Accessible via AWS Console
  • 3
    Complex workflows
  • 2
    Scalability
  • 2
    High Availability
  • 2
    Workflow Processing
CONS OF AWS STEP FUNCTIONS
    Be the first to leave a con

    related AWS Step Functions posts

    Shared insights
    on
    AWS Step FunctionsAWS Step FunctionsAirflowAirflow

    I am working on a project that grabs a set of input data from AWS S3, pre-processes and divvies it up, spins up 10K batch containers to process the divvied data in parallel on AWS Batch, post-aggregates the data, and pushes it to S3.

    I already have software patterns from other projects for Airflow + Batch but have not dealt with the scaling factors of 10k parallel tasks. Airflow is nice since I can look at which tasks failed and retry a task after debugging. But dealing with that many tasks on one Airflow EC2 instance seems like a barrier. Another option would be to have one task that kicks off the 10k containers and monitors it from there.

    I have no experience with AWS Step Functions but have heard it's AWS's Airflow. There looks to be plenty of patterns online for Step Functions + Batch. Do Step Functions seem like a good path to check out for my use case? Do you get the same insights on failing jobs / ability to retry tasks as you do with Airflow?

    See more
    Google Keep logo

    Google Keep

    52
    45
    0
    Capture what’s important and get more done
    52
    45
    + 1
    0
    PROS OF GOOGLE KEEP
      Be the first to leave a pro
      CONS OF GOOGLE KEEP
        Be the first to leave a con

        related Google Keep posts

        Workfront logo

        Workfront

        14
        13
        0
        A platform for enterprise work management
        14
        13
        + 1
        0
        PROS OF WORKFRONT
          Be the first to leave a pro
          CONS OF WORKFRONT
            Be the first to leave a con

            related Workfront posts

            Taskworld logo

            Taskworld

            3
            8
            0
            Cloud-based task management and communication app
            3
            8
            + 1
            0
            PROS OF TASKWORLD
              Be the first to leave a pro
              CONS OF TASKWORLD
                Be the first to leave a con

                related Taskworld posts