Case study · Stack

How RD Station grew a Rails app from Heroku to a multi-cloud platform

RD Station, founded as Resultados Digitais in Florianópolis, makes marketing automation, CRM and customer service software and has been part of TOTVS since 2021. It started as a Ruby on Rails app on Heroku and today runs Rails and Python services on Kubernetes across Google Cloud and AWS.
Copy this stackrdstation.com Marketing automation and CRM for small businesses · Brazil · founded 2011

RD Station's stack

Open in the stack builder

Language

UI library

Hosting

Database

Data fetching

Backend framework

Error monitoring

How they built it

A Rails app on Heroku

At TDC 2014, RD engineers showed how the stack had grown. In early 2013 it was just Postgres, Rails, Heroku and Delayed::Job. By March 2014 it had added Elasticsearch, Redis, MongoDB, memcached, Resque, GitHub and CircleCI.

The lessons on the slides point the same way: separate apps, decouple the front end from the back end and automate deploys.

Sources:speakerdeck.com

Scaling in 2015

By 2015 RD Station was sending more than 70 million emails a month, running over 4 million jobs a day and holding a billion documents in MongoDB, with five dev teams deploying about ten times a day.

To keep up they leaned on autoscalers and microservices, trying Ruby first, then Node.js, then Go. New Relic profiled the app, Rollbar tracked errors and Hubot handled deploys.

Sources:pt.slideshare.net

Rails today, on several clouds

TOTVS bought RD Station in 2021 for R$ 1.86 billion. Rails is still at the core: a current billing role asks for Ruby on Rails with PostgreSQL, Sidekiq for async jobs, Docker and Kubernetes, with Datadog and Rollbar in production.

The cloud team runs a shared foundation across Google Cloud, AWS and Oracle Cloud, with Kubernetes on GKE and EKS and Terraform for infrastructure as code. RD also open-sourced a Kubernetes operator that autoscales Google Cloud Bigtable nodes based on CPU.

Sources:olhardigital.com.br job-boards.greenhouse.io job-boards.greenhouse.io github.com

An AI team in Python

AI work happens in a cross-product group called the AI Alliance, which builds RD Station's AI agent builder. Its backend is in Python with React and TypeScript on the front, Kafka or Pub/Sub for events, PostgreSQL and MongoDB for data and Datadog for observability.

Engineers are expected to use AI tools like Cursor to move faster while staying responsible for quality and security.

Sources:job-boards.greenhouse.io job-boards.greenhouse.io

Also detected on their website

Found on the homepage with the open Wappalyzer rules (HTML, scripts and headers). It shows what runs in the browser, not the whole backend.

  • Cloudflare
  • Cloudflare Browser Insights