ActiveJob & Lambda
🥋 Lambdakiq
Background tasks with ActiveJob on AWS Lambda is a reimagination of the problem for Rails. Instead of starting up long running process that poll for work, we instead use the event-driven architecture of AWS Lambda to our advantage using a gem named Lambdakiq:
Lambdakiq, is a drop-in replacement for Sidekiq. It allows you to leverage AWS' managed infrastructure to the fullest extent. Gone are the days of managing pods and long polling processes. Instead AWS delivers messages directly to your Rails' job functions and scales it up and down as needed. Observability is built in using AWS CloudWatch Metrics, Dashboards, and Alarms.
Key Features
- Distinct web & jobs Lambda functions.
- AWS fully managed polling. Event-driven.
- Maximum 12 retries. Per job configurable.
- Mirror Sidekiq's retry backoff timing.
- Last retry is at 11 hours 30 minutes.
- Supports ActiveJob's wait/delay. Up to 15 minutes.
- Dead messages are stored for up to 14 days.
Learn more at Lambdakiq on GitHub: https://github.com/customink/lambdakiq
👊 LambdaPunch
Asynchronous background job processing for AWS Lambda with Ruby using Lambda Extensions. Inspired by the SuckerPunch gem but specifically tooled to work with Lambda's invoke model.