Scaling Sidekiq at Gusto
Over the past year at Gusto, we’ve drastically changed how we approach Sidekiq in our main Rails monolith. This post dives in.
Over the past year at Gusto, we’ve drastically changed how we approach Sidekiq in our main Rails monolith. This post dives in.
This was Gusto's system graph. Each of the black rectangles you see here is a subsystem within Gusto's biggest Rails monolith, and the red arrows are where one subsystem talks to another. As our
Upgrading Rails can often be difficult and risky! I'll be walking through the process my team took to safely upgrade to Rails 7.0. While this is going to be relatively Rails and Ruby specific, I hope you can take away something for software you are upgrading.
In this post, we'll look at what problems these non-atomic actions pose and walk through a few examples of how to fix them. We'll also cover isolator, a gem that helps us detect these non-atomic violations.
My team recently embarked on a journey toward unbundling our part of Gusto’s monolithic Ruby on Rails app. A monolithic app is a single application that contains code across many domains. The boundaries are unclear. The domains
One of the most unique and often misunderstood features of Ruby is blocks. Blocks are Ruby’s version of closures [https://softwareengineering.stackexchange.com/questions/40454/what-is-a-closure] and can be used to make code more reusable and less
Introduction During my time at Gusto as a part of the Application Security team, I’ve been exploring ways to improve defense against Cross-Site Scripting (XSS) [https://www.owasp.org/index.php/Cross-site_Scripting_(XSS)] in modern web
Imagine you have a Rails monolith and want to add new functionality. Your options are to 1) continue adding to the monolith, or 2) create a new service. Which do you choose? What if there’s a third