9 Tips & Tricks to Enable Zeitwerk Autoloader in your Rails App
co-authored by Sanket Patel Introduction Do you have a Rails 5 (or older) app that uses Sidekiq and want to upgrade to the latest and greatest version of both? If you do, then stick around for some helpful tips and tricks we discovered while going through this...
How to Prevent Discovery Attacks
When something goes wrong with your data, Rewind Backups is there to help you restore it back to the way it was. This requires us to securely store a great deal of customer data. In this post, we’re going to look at one solution we’re using to prevent a specific type...
Optimizing Your Rails Webpacker Compilation
Do you ever find yourself starting up your Rails app, walking away to make a coffee, and coming back only to find it still compiling assets? If so - you’re not alone. A growing issue for today’s Rails developers is the increasingly frustrating asset compilation times...
Curated AWS SSM Scripts
We’ve written in a previous article about Rewind’s use of AWS SSM Session Manager and associated IAM policies to allow shell and SSH tunnel access to AWS resources. We also open sourced a small tool we created to make use of SSM easier called aws-connect. But what if...
Dependency Graphs in Ruby
Or, Making a Sandwich Using Sidekiq When something goes wrong with your data, Rewind Backups is there to help you restore it back to the way it was. The process for doing this is actually a little more complicated than one might imagine: every platform Rewind...
Using S3 batch to tag data for removal
At Rewind, we have a requirement to remove data from AWS S3 based on an external time criteria. We settled on using S3 batch and some tooling around this to handle the removal of the data "automagically" using tagging and S3 content lifecycle rules. Here's how we did...
Automated Terraform Deployments to AWS with Github Actions
We’ve written in a previous blog post how Terraform helps us manage a lot of infrastructure for several platforms in a consistent manner. Recently we’ve been able to develop an automated workflow for actually applying our Terraform configuration to environments with...
Why Rewind Said Hello to AWS Session Manager and Goodbye to SSH
At Rewind, we generally subscribe to the “treat your servers like cattle, not pets” mantra yet we still have the occasional requirement to log in to EC2 instances using SSH. We had instances locked down fairly tight using security groups and only allowing SSH from a...
Aggregating Webhooks with DynamoDB and SQS Delay Queues
Webhooks and the processing of them are a big part of Rewind backups. We’re now processing over 300 million hooks per month at a peak rate of approx 190 hooks per second. We’ve written before about a scalable method for processing large volumes of webhooks and also...
Deprecating a Critical Rails Model Without Taking out Your Application
True Love is Letting (Your Domain Model) Go … Gently Things change. And when you work in software development, things change fast. Eventually — and there is no escaping it — a fundamental assumption in your application’s design will prove to be outdated. Sometimes,...