Need advice about which tool to choose?Ask the StackShare community!

AWS Lambda

23.6K
18.4K
+ 1
432
Sidekiq

1.1K
629
+ 1
408
Add tool

AWS Lambda vs Sidekiq: What are the differences?

Introduction

In this comparison, we will explore the key differences between AWS Lambda and Sidekiq, two popular technologies used for serverless computing and background job processing respectively.

  1. Language Support: AWS Lambda supports a wide range of programming languages, including Java, Python, Node.js, C#, and more, allowing developers to choose their preferred language for coding functions. On the other hand, Sidekiq is primarily designed for Ruby applications, making it the go-to option for Ruby developers.

  2. Execution Environment: AWS Lambda runs on the AWS cloud infrastructure, meaning developers are relieved from managing servers or infrastructure. It automatically scales to handle incoming requests and provisions resources as needed. In contrast, Sidekiq needs to be set up and managed in the application's infrastructure, requiring additional maintenance and configuration.

  3. Scaling and Cost: AWS Lambda offers auto-scaling, where it manages the concurrency automatically based on the incoming traffic. The pricing is based on the number of invocations, duration of execution, and resource usage. Sidekiq, on the other hand, requires manual scaling by configuring the number of workers and concurrency. Scaling Sidekiq can be costlier as it requires provisioning and managing the infrastructure for handling increased load.

  4. Integration with Ecosystem: AWS Lambda is part of the Amazon Web Services ecosystem, which makes it seamless to integrate with other AWS services such as S3, DynamoDB, and SQS. It also offers native integrations with various AWS monitoring and logging tools. In contrast, Sidekiq integrates well with Ruby frameworks and libraries, making it easier to work with the Ruby ecosystem.

  5. Event-driven vs. Job-based: AWS Lambda follows an event-driven architecture, where functions are triggered by events such as HTTP requests, database updates, or message queues. This makes it suitable for real-time processing and response. Conversely, Sidekiq utilizes a job-based model, where jobs are added to a queue and processed by workers asynchronously. This is advantageous for background processing and handling heavy or long-running tasks.

  6. Deployment and Management: AWS Lambda provides a fully managed service, which means that AWS takes care of infrastructure, deployment, and monitoring. Developers can focus solely on writing functions and leave the operational aspect to AWS. In contrast, Sidekiq requires developers to deploy and manage the application infrastructure themselves, including monitoring, error handling, and scalability.

In summary, AWS Lambda and Sidekiq differ in terms of language support, execution environment, scaling and cost, integration with ecosystem, event-driven vs. job-based architecture, and deployment and management approaches.

Decisions about AWS Lambda and Sidekiq
Tim Nolet

When adding a new feature to Checkly rearchitecting some older piece, I tend to pick Heroku for rolling it out. But not always, because sometimes I pick AWS Lambda . The short story:

  • Developer Experience trumps everything.
  • AWS Lambda is cheap. Up to a limit though. This impact not only your wallet.
  • If you need geographic spread, AWS is lonely at the top.
The setup

Recently, I was doing a brainstorm at a startup here in Berlin on the future of their infrastructure. They were ready to move on from their initial, almost 100% Ec2 + Chef based setup. Everything was on the table. But we crossed out a lot quite quickly:

  • Pure, uncut, self hosted Kubernetes β€” way too much complexity
  • Managed Kubernetes in various flavors β€” still too much complexity
  • Zeit β€” Maybe, but no Docker support
  • Elastic Beanstalk β€” Maybe, bit old but does the job
  • Heroku
  • Lambda

It became clear a mix of PaaS and FaaS was the way to go. What a surprise! That is exactly what I use for Checkly! But when do you pick which model?

I chopped that question up into the following categories:

  • Developer Experience / DX πŸ€“
  • Ops Experience / OX πŸ‚ (?)
  • Cost πŸ’΅
  • Lock in πŸ”

Read the full post linked below for all details

See more
Get Advice from developers at your company using StackShare Enterprise. Sign up for StackShare Enterprise.
Learn More
Pros of AWS Lambda
Pros of Sidekiq
  • 129
    No infrastructure
  • 83
    Cheap
  • 70
    Quick
  • 59
    Stateless
  • 47
    No deploy, no server, great sleep
  • 12
    AWS Lambda went down taking many sites with it
  • 6
    Event Driven Governance
  • 6
    Extensive API
  • 6
    Auto scale and cost effective
  • 6
    Easy to deploy
  • 5
    VPC Support
  • 3
    Integrated with various AWS services
  • 124
    Simple
  • 99
    Efficient background processing
  • 60
    Scalability
  • 37
    Better then resque
  • 26
    Great documentation
  • 15
    Admin tool
  • 14
    Great community
  • 8
    Integrates with redis automatically, with zero config
  • 7
    Stupidly simple to integrate and run on Rails/Heroku
  • 7
    Great support
  • 3
    Ruby
  • 3
    Freeium
  • 2
    Pro version
  • 1
    Dashboard w/live polling
  • 1
    Great ecosystem of addons
  • 1
    Fast

Sign up to add or upvote prosMake informed product decisions

Cons of AWS Lambda
Cons of Sidekiq
  • 7
    Cant execute ruby or go
  • 3
    Compute time limited
  • 1
    Can't execute PHP w/o significant effort
    Be the first to leave a con

    Sign up to add or upvote consMake informed product decisions

    What is AWS Lambda?

    AWS Lambda is a compute service that runs your code in response to events and automatically manages the underlying compute resources for you. You can use AWS Lambda to extend other AWS services with custom logic, or create your own back-end services that operate at AWS scale, performance, and security.

    What is Sidekiq?

    Sidekiq uses threads to handle many jobs at the same time in the same process. It does not require Rails but will integrate tightly with Rails 3/4 to make background processing dead simple.

    Need advice about which tool to choose?Ask the StackShare community!

    What companies use AWS Lambda?
    What companies use Sidekiq?
    See which teams inside your own company are using AWS Lambda or Sidekiq.
    Sign up for StackShare EnterpriseLearn More

    Sign up to get full access to all the companiesMake informed product decisions

    What tools integrate with AWS Lambda?
    What tools integrate with Sidekiq?

    Sign up to get full access to all the tool integrationsMake informed product decisions

    Blog Posts

    Jun 6 2019 at 5:11PM

    AppSignal

    RedisRubyKafka+9
    15
    1644
    GitHubPythonNode.js+47
    54
    72320
    GitHubDockerAmazon EC2+23
    12
    6566
    JavaScriptGitHubPython+42
    53
    21867
    What are some alternatives to AWS Lambda and Sidekiq?
    Serverless
    Build applications comprised of microservices that run in response to events, auto-scale for you, and only charge you when they run. This lowers the total cost of maintaining your apps, enabling you to build more logic, faster. The Framework uses new event-driven compute services, like AWS Lambda, Google CloudFunctions, and more.
    Azure Functions
    Azure Functions is an event driven, compute-on-demand experience that extends the existing Azure application platform with capabilities to implement code triggered by events occurring in virtually any Azure or 3rd party service as well as on-premises systems.
    AWS Elastic Beanstalk
    Once you upload your application, Elastic Beanstalk automatically handles the deployment details of capacity provisioning, load balancing, auto-scaling, and application health monitoring.
    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 App Engine
    Google has a reputation for highly reliable, high performance infrastructure. With App Engine you can take advantage of the 10 years of knowledge Google has in running massively scalable, performance driven systems. App Engine applications are easy to build, easy to maintain, and easy to scale as your traffic and data storage needs grow.
    See all alternatives