Our great sponsors
-
Ever since writing this post last year on Using New Relic APM with Rails on AWS Lambda, I have always wanted to find a way to send APM data in a way that did not add extra milliseconds to the application's response times. Likewise, for smaller projects it would be nice to have a lightweight alternative to Lambdakiq for ActiveJob similar to Brandon Hilkert's popular SuckerPunch gem. Today we have both with the LambdaPunch gem.
-
Sucker Punch
Sucker Punch is a Ruby asynchronous processing library using concurrent-ruby, heavily influenced by Sidekiq and girl_friday.
Ever since writing this post last year on Using New Relic APM with Rails on AWS Lambda, I have always wanted to find a way to send APM data in a way that did not add extra milliseconds to the application's response times. Likewise, for smaller projects it would be nice to have a lightweight alternative to Lambdakiq for ActiveJob similar to Brandon Hilkert's popular SuckerPunch gem. Today we have both with the LambdaPunch gem.
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
-
lambda_punch
🐑👊 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.
Ever since writing this post last year on Using New Relic APM with Rails on AWS Lambda, I have always wanted to find a way to send APM data in a way that did not add extra milliseconds to the application's response times. Likewise, for smaller projects it would be nice to have a lightweight alternative to Lambdakiq for ActiveJob similar to Brandon Hilkert's popular SuckerPunch gem. Today we have both with the LambdaPunch gem.
-
Because AWS Lambda freezes the execution environment after each invoke, there is no "process" that continues to run after the handler's response. However, thanks to Lambda Extensions along with its "early return", we can do two important things. First, we leverage the rb-inotify gem to send the extension process a simulated POST-INVOKE event. We then use Distributed Ruby (DRb) from the extension to signal your application to work jobs off a queue. Both of these are synchronous calls. Once complete the LambdaPunch extensions signals it is done and your function is ready for the next request.