Deep Dive into Database Timeouts in Rails
Jan 29, 2018Jia Hao Goh

Summary
This post details the investigation into a production outage caused by database failovers in a Ruby on Rails application. It explains the mechanics of ActiveRecord connection pooling and the impact of `checkout_timeout`, `connect_timeout`, and `read_timeout` configurations. The authors replicate the issue using Toxiproxy and conduct experiments to demonstrate how these timeouts affect application threads and overall availability during database disruptions. The post provides a foundational understanding of database timeout handling in Rails.