Skip to content

SYSTEM Cited by 1 source

RIB Architecture (Uber)

RIB (Router-Interactor-Builder; github.com/uber/RIBs) is Uber's cross-platform mobile application architecture, first used for the rewrite of the main Uber rider app in the 2016+ era. Structurally analogous to microservices on the backend — each RIB has a clear single responsibility and is ownable by a separate team and separately feature-flaggable. (Source: sources/2024-03-14-highscalability-brief-history-of-scaling-uber)

Why RIBs

Uber's mobile app repositories hit the monolithic bottleneck that the backend had hit earlier — many features, many engineers, a single releasable codebase. RIBs borrow the microservice playbook for the mobile app:

  • Separation of responsibilities. Each RIB does one thing.
  • Core vs. optional split. Stricter review for core RIBs protects the critical flows — taking a ride, seeing a trip — from regressions in peripheral features.
  • Feature flagging per RIB. Optional features can roll out independently; core flows remain confidently shipped.
  • Team-ownable. Different RIBs get different owners; scaled the mobile codebase to "hundreds of engineers".

Adoption

As of the 2024-03-14 retrospective, "all our apps have adopted RIBs or are migrating towards it" — including the main Driver app, Uber Eats apps, and Uber Freight. Originally rolled out via the main rider app rewrite.

Seen in

Last updated · 517 distilled / 1,221 read