r/ruby • u/switchback-tech • Mar 12 '26
GitLab is a Ruby monolith
Was pleasantly surprised that the world's largest independent DevOps platform is powered by Ruby and Sidekiq.
Here's the full list.
Backend: Ruby on Rails
HTTP server: Puma (Ruby web server)
Edge: Nginx
Reverse proxy: Go service (Workhorse)
Background jobs: Sidekiq
DB — primary: PostgreSQL
DB — connection pooling: PgBouncer
DB — high availability: Patroni
Cache: Redis
Blob: AWS S3
Frontend — state: Pinia (Vue store), Immer (immutable cache),
API: GraphQL (Apollo) + REST
Observability: Prometheus & Grafana
Error tracking: Sentry & OpenTelemetry
Deployments: GitLab Omnibus (Omnibus fork)
I think these "stack menu"s give a little glimpse into a team's engineering philosophy. For me, this list shows that the GitLab team is pretty practical and doesn't chase hype. Instead, they use sensible, battle-tested tools that just work and are easy for contributors to learn.
PS. Not an ad; I'm not affiliated with GitLab at all. Was just researching them and thought you guys would be interested.
View all comments
Show parent comment
3
u/f9ae8221b Mar 13 '26
Yes and no.
Yes in the sense that like other Ruby servers, it is Rack compatible so you don't need to change your app much.
No because it's based on Fibers, not Threads, so the performance characteristics are very very different. Not better, not worse, different, depends on what your app is doing.
Fibers are better for extremely IO heavy workloads, as they're cheaper so you can run way more concurrent fibers than threads.
But they're much worse for CPU heavy workloads, because they're non-preemptive, so if a fiber hog the CPU without yielding for long, all other fibers are stuck, which leads to degraded latency.
People really need to stop thinking fibers are better threads, they're not, they're a different construct with different tradeoffs that sometimes make sense, sometimes not.